DataContract, значение DataMember по умолчанию

Есть ли способ выбрать значения по умолчанию для атрибутов, которых нет в XML-файле во время десериализации?
Если атрибут mAge отсутствует в XML-файле, я хочу использовать значение по умолчанию 18. Возможно ли это?

[DataContract]
public class Person 
{
    public Person ()
    {
    }
    [DataMember(Name = "Name")]
    public string mName { get; set; }
    [DataMember(Name = "Age")]
    public int mAge { get; set; }
    [DataMember(Name = "Single")]
    public bool mIsSingle { get; set; }
};

Отредактируйте, чтобы ввести ответ.

[DataContract]
public class Person 
{
    public Person ()
    {
    }
    [DataMember(Name = "Name")]
    public string mName { get; set; }
    [DataMember(Name = "Age")]
    public int? mAge { get; set; }
    [DataMember(Name = "Single")]
    public bool? mIsSingle { get; set; }

    [System.Runtime.Serialization.OnDeserialized]
    void OnDeserialized(System.Runtime.Serialization.StreamingContext c)
    {
        mAge = (mAge == null ? 18 : mAge); // 18 is the default value
    }
}
17
задан dana 8 July 2015 в 14:55
поделиться