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