Значение по умолчанию набора в DataContract?

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

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

    [DataMember]
    public string ScanDevice { get; set; }
19
задан acadia 8 October 2012 в 18:17
поделиться

2 ответа

Я обычно делал это с помощью такого шаблона:

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

33
ответ дан 30 November 2019 в 03:28
поделиться

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

[DataMember(EmitDefaultValue = false)]
public string ScanDevice= "XeroxScan";
5
ответ дан 30 November 2019 в 03:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: