如果一个程序实际上只是反序列化一个对象(并不重要,但只是说使用了BinaryFormatter)。
用于重新注入此对象的依赖项的好设计是什么?
这有共同的模式吗?
我想我需要将Deserialize()方法包装起来作为容器内的工厂。
谢谢!
答案 0 :(得分:11)
您不应该序列化具有本身无法序列化的依赖项的对象。
相反,将其拆分为两个类:将可序列化部分提取到单独的类中。
反序列化后,您可以将结果对象与原始类的实例(具有依赖项的实例)相关联。
答案 1 :(得分:1)
我会使用OnDeserialized属性指向一个可以重新注入的方法。
答案 2 :(得分:0)
Unity有一个“BuildUp”概念,您可以在其中要求它实现现有对象的依赖关系。我不知道autofac(我认为你在标签中使用的)是否具有等价物。