IProxiedSerializable.cs 970 B

123456789101112131415161718192021222324252627
  1. namespace TBL.CSharp.Serialization
  2. {
  3. /// <summary>
  4. /// 可使用代理序列化的对象接口
  5. /// <para>此类对象可以使用另一个可序列化对象来代理自身的序列化</para>
  6. /// </summary>
  7. public interface IProxiedSerializable
  8. {
  9. /// <summary>
  10. /// 代理序列化
  11. /// </summary>
  12. /// <returns>可参与序列化的此对象代理</returns>
  13. object ProxiedSerialize();
  14. /// <summary>
  15. /// 代理反序列化
  16. /// </summary>
  17. /// <param name="proxy">可以用作反序列化的代理对象</param>
  18. void ProxiedDeserialize(object proxy);
  19. /// <summary>
  20. /// 当此对象反序列化时,是否应该使用构造方法初始化
  21. /// <para>如果为否,反序列化时创建的对象将不会使用构造方法</para>
  22. /// </summary>
  23. bool IsShouldInitializeWhenDeserialize();
  24. }
  25. }