猿问

WCF反序列化如何在不调用构造函数的情况下实例化对象?

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。


那么,WCF如何做到这一点?这是其他人也可以使用的技术,还是对我们隐藏?


月关宝盒
浏览 480回答 3
3回答

慕雪6442864

很奇怪-我在linqpad中运行该代码,然后得到:0 0作为输出。其实这对我来说很有意义,因为字段初始被联到构建函数AFAIK 
随时随地看视频慕课网APP
我要回答