是否可以使用反序列化进行构造函数注入?

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不支持这个,也没有外部构造的钩子。所以:不,基本上。