是否可以使用反序列化进行构造函数注入?
Is possible constructor injection using deserialization?
关于以下代码:
var serializer = new XmlSerializer(typeof(MyPOCOType));
using (var reader = XmlReader.Create(fileName))
{
var pocoInstance = (MyPOCOType)serializer.Deserialize(reader);
}
我正在使用 ninject。
MyPOCOType 具有通过构造函数注入传递的依赖项。
MyPOCOType 的实例正在通过 Deserialize 方法创建,因此未提供依赖项。
有另一种方法可以在不将状态与我的 MyPOCOType 分开并且不使用 [Inject] 属性的情况下做到这一点吗? (仍然使用构造函数注入)
XmlSerializer
不支持这个,也没有外部构造的钩子。所以:不,基本上。
关于以下代码:
var serializer = new XmlSerializer(typeof(MyPOCOType));
using (var reader = XmlReader.Create(fileName))
{
var pocoInstance = (MyPOCOType)serializer.Deserialize(reader);
}
我正在使用 ninject。
MyPOCOType 具有通过构造函数注入传递的依赖项。
MyPOCOType 的实例正在通过 Deserialize 方法创建,因此未提供依赖项。
有另一种方法可以在不将状态与我的 MyPOCOType 分开并且不使用 [Inject] 属性的情况下做到这一点吗? (仍然使用构造函数注入)
XmlSerializer
不支持这个,也没有外部构造的钩子。所以:不,基本上。