我想使用 NetDataContractSerializer(或我猜的任何序列化器)来控制在反序列化期间通常不可序列化的类型的对象创建。使用自定义 SerializationBinder 我可以控制构造的类型,并使用自定义 ISurrogateSelector 和 ISerializationSurrogate 来控制如何在对象上设置状态。
我不能做的实际上是自己创建对象以允许使用依赖注入或其他东西。导致问题的对象位于对象图中,因此我无法在序列化之前对其进行编辑。
有没有办法让我的代码构造反序列化对象?
(作为背景,我正在编写基于 WF 示例中的 XmlWorkflowInstanceStore 的自定义 WF4 持久性实例存储。我想编写具有接口变量的工作流......并且不能直接构造具体类型。XmlWorkflowInstanceStore 是唯一的我可以找到自定义持久性的示例,它使用 NetDataContractSerializer 来序列化工作流状态。)