重新注入新反序列化对象的依赖关系

时间:2010-04-20 13:47:03

标签: c# dependency-injection ioc-container autofac

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

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

这有共同的模式吗?

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

谢谢!

3 个答案:

答案 0 :(得分:11)

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

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

反序列化后,您可以将结果对象与原始类的实例(具有依赖项的实例)相关联。

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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