Установить значение по умолчанию в DataContract?

Как установить значение по умолчанию для DataMember например, для показанного ниже:

Я хочу установить ScanDevice = "XeroxScan" по умолчанию

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

Ответы

Ответ 1

Я обычно делал это с таким шаблоном:

[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, поскольку ваш конструктор не будет вызываться во время десериализации.

Ответ 2

Если вы хотите, чтобы он всегда был по умолчанию для XeroxScan, почему бы не сделать что-то простое, например:

[DataMember(EmitDefaultValue = false)]
public string ScanDevice= "XeroxScan";