ISerializable 接口只提供了一种序列化对象的方法。反序列化过程由构造函数管理。
问题是,构造函数不能返回实例,因为构造函数创建了一个新实例。
在我的实现中,有几个属性对应于在其他地方实例化和维护的单例。
我需要反序列化过程来获取该实例并分配给属性,而不是创建一个新实例。
构造函数方法不适合这种情况。
在 Java 中,您将调用 ReadResolve() 方法,是否有 C# 等效项?
ISerializable 接口只提供了一种序列化对象的方法。反序列化过程由构造函数管理。
问题是,构造函数不能返回实例,因为构造函数创建了一个新实例。
在我的实现中,有几个属性对应于在其他地方实例化和维护的单例。
我需要反序列化过程来获取该实例并分配给属性,而不是创建一个新实例。
构造函数方法不适合这种情况。
在 Java 中,您将调用 ReadResolve() 方法,是否有 C# 等效项?
您需要使保存对单例的引用的类实现 IObjectReference。
看看http://msdn.microsoft.com/en-us/library/system.runtime.serialization.iobjectreference.aspx