首页 > 解决方案 > 在 XML 反序列化 C# 时设置默认值

问题描述

考虑下面的类

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

使用 XML 文件中的某些值序列化此 Person 类(姓名和年龄)并反序列化返回。当反序列化时 Name 值为 Null 或 Empty 时,我想分配一些默认值。我尝试如下,但它不工作。

public class Person
{
    private string _name;

    public string Name
    {
        get { return _name; }
        set
        {
            _name = value;
            if (_name == null)
            {
                _name = "Some Name";
            }
        }
    }
}

使用 XmlSerializer 反序列化 C# 对象时如何设置字符串和 int 字段的默认值。

标签: c#.netxml

解决方案


你必须像Own Paulingproperty一样在里面初始化Contructor

或者你可以auto-initialize这样:

public class Person{
public string Name { get; set; } = "Some name"
public int Age { get; set; } = 18
}

在您的代码演示中。

当您将某些东西(任何东西,甚至null)设置为propertybefore时,它​​只会起作用Deserialization


推荐阅读