在DataContract中设置默认值?

如何为DataMember设置默认值,例如下面显示的值:

我想默认设置ScanDevice =“XeroxScan”

[DataMember] public string ScanDevice { get; set; } 

我通常使用这样的模式完成此操作:

 [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";