【发布时间】:2010-07-01 17:16:11
【问题描述】:
如何为 DataMember 设置默认值 例如下图:
我想默认设置 ScanDevice="XeroxScan"
[DataMember]
public string ScanDevice { get; set; }
【问题讨论】:
标签: c# wcf datacontractserializer
如何为 DataMember 设置默认值 例如下图:
我想默认设置 ScanDevice="XeroxScan"
[DataMember]
public string ScanDevice { get; set; }
【问题讨论】:
标签: c# wcf datacontractserializer
我通常用这样的模式来做这个:
[DataContract]
public class MyClass
{
[DataMember]
public string ScanDevice { get; set; }
public MyClass()
{
SetDefaults();
}
[OnDeserializing]
private void OnDeserializing(StreamingContext context)
{
SetDefaults();
}
private void SetDefaults()
{
ScanDevice = "XeroxScan";
}
}
不要忘记 OnDeserializing,因为在反序列化期间不会调用您的构造函数。
【讨论】:
如果您希望它始终默认为 XeroxScan,为什么不做一些简单的事情:
[DataMember(EmitDefaultValue = false)]
public string ScanDevice= "XeroxScan";
【讨论】: