【发布时间】:2017-06-18 00:47:18
【问题描述】:
有人告诉我,包含 getter 和 setter 的可序列化对象需要一个空白构造函数,如下所示:
[DataContract]
public class Item
{
[DataMember]
public string description { get; set; }
public Item() {}
public Item(string description)
{
this.description = description;
}
}
告诉我的原因是这允许使用 setter 构造对象。但是,我发现 Item 的定义如下:
[DataContract]
public class Item
{
[DataMember]
public string description { get; set; }
public Item(string description)
{
this.description = description;
}
}
当通过 WCF 服务引用作为代理类提供时,无需调用构造函数即可构造:
Item item = new Item {description = "Some description"};
问题:
- 我在声明
new Item后写的代码块到底是什么 - [DataContract] 类是否需要空白构造函数?如果是这样,这个空白构造函数是做什么的?
我发现如果类不是代理类,我无法在没有构造函数的情况下创建对象。
【问题讨论】:
标签: c# wcf constructor