最佳答案
WCF 反序列化有一些神奇之处。如何在不调用其构造函数的情况下实例化数据契约类型的实例?
例如,考虑一下这个数据契约:
[DataContract]
public sealed class CreateMe
{
[DataMember] private readonly string _name;
[DataMember] private readonly int _age;
private readonly bool _wasConstructorCalled;
public CreateMe()
{
_wasConstructorCalled = true;
}
// ... other members here
}
当通过 DataContractSerializer
获得这个对象的实例时,您将看到字段 _wasConstructorCalled
是 false
。
那么,周转基金是如何做到这一点的呢?这是一种别人也可以使用的技巧,还是对我们隐藏起来的技巧?