在反序列化期间控制对象创建

我想控制一个类型的对象创建,这个类型在反序列化期间通常不能使用NetDataContractSerializer(或我猜的任何序列化器)进行序列化。使用自定义SerializationBinder我可以控制构造的类型,并使用自定义ISurrogateSelector和ISerializationSurrogate来控制如何在对象上设置状态。 我不能做的实际上是自己创建对象以允许使用依赖注入或其他东西。导致问题的对象在对象图中,因此在序列化之前我无法编辑它。 有没有办法允许我的代码构造反序列化的对象? (对于后台,我正在编写基于WF示例中的XmlWorkflowInstanceStore的自定义WF4持久性实例存储。我想创建具有接口变量的工作流......并且不能直接构造具体类型.XmlWorkflowInstanceStore是唯一的示例我可以找到自定义持久性,它使用NetDataContractSerializer来序列化工作流状态。)     
已邀请:
我一直遇到这个问题。我自己正式实现ISerializable并使用一个方法(例如SetDependencies命名)设置所有依赖项 - 这不是你想要的方式(因为你必须在反序列化后调用它)但我还没有找到更好的方法(试过AOP,但它变得令人讨厌)     
我知道这个问题很老,但你在找
GetSafeUninitializedObject
吗?     

要回复问题请先登录注册