9

如果一个程序实际上只是反序列化了一个对象(实际上并不重要,只是说使用了 BinaryFormatter)。

用于重新注入此对象的依赖项的好的设计是什么?

这有一个共同的模式吗?

我想我需要将 Deserialize() 方法包装起来以充当容器内的工厂。

谢谢!

4

3 回答 3

11

您不应该序列化具有自身无法序列化的依赖项的对象。

相反,将其拆分为两个类:将可序列化的部分提取到一个单独的类中。

反序列化后,您可以将生成的对象与原始类的一个实例(具有依赖关系的实例)相关联。

于 2010-04-20T13:59:59.337 回答
1

我会使用OnDeserialized属性来指向一个可以进行重新注入的方法。

于 2010-04-20T13:52:53.160 回答
0

Unity 有一个“ BuildUp ”的概念,您可以要求它满足现有对象的依赖关系。我不知道 autofac (我认为你是从标签中使用的)是否有等价物。

于 2010-04-20T13:56:59.747 回答