12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- namespace TBL.CSharp.Serialization
- {
- /// <summary>
- /// 可使用非安全序列化的对象接口
- /// <para>非安全序列化的优点是效率极高,适合网络传输;缺点是自身不包含任何类型信息,不适合作为存档等用途</para>
- /// </summary>
- public unsafe interface IUnsafeSerializable
- {
- /// <summary>
- /// 序列化
- /// </summary>
- /// <param name="data">要序列化到的目标数据区</param>
- /// <returns>序列化数据的字节数</returns>
- int Serialize(byte* data);
- /// <summary>
- /// 反序列化
- /// </summary>
- /// <param name="data">要反序列化的来源数据区</param>
- /// <returns>反序列化数据的字节数</returns>
- int Deserialize(byte* data);
-
- /// <summary>
- /// 同 <see cref="Serialize"/>
- /// <para>但会进行端序转换</para>
- /// </summary>
- int SerializeWithEndianConversion(byte* data);
-
- /// <summary>
- /// 同 <see cref="Deserialize"/>
- /// <para>但会进行端序转换</para>
- /// </summary>
- int DeserializeWithEndianConversion(byte* data);
- /// <summary>
- /// 计算序列化字节数
- /// </summary>
- int CalcSerializationSize();
- /// <summary>
- /// 当此对象反序列化时,是否应该使用构造方法初始化
- /// <para>如果为否,反序列化时创建的对象将不会使用构造方法</para>
- /// </summary>
- bool IsShouldInitializeWhenDeserialize();
- }
- }
|