c# - 在 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 字段的默认值。
解决方案
你必须像Own Paulingproperty
一样在里面初始化Contructor
或者你可以auto-initialize
这样:
public class Person{
public string Name { get; set; } = "Some name"
public int Age { get; set; } = 18
}
在您的代码演示中。
当您将某些东西(任何东西,甚至null
)设置为property
before时,它只会起作用Deserialization
。
推荐阅读
- mysql - firebird 数据库的 mysql 的 \G 等效项是什么?
- asp.net-mvc - 不可选择的 @Html.Dropdownlist 上的占位符
- mysql - 使用 MySQL/OTP 运行“Select * From tableName”查询,没有“WHERE”
- c# - 在 C# 中使用 Moq 模拟服务
- javascript - 如何使用函数从变量中切换值
- javascript - 如何在 ES6 或 Javascript 中不受我们控制的 settimeout 函数之后触发函数?
- angular6 - 在不使用组件类中的字段的情况下更新 HTML - 无状态方式
- firebase - 使用 Angular Fire 监听 Firestore 元数据更改
- linq - 将 SQL 查询转换为 LINQ 以获取列值作为 xml 字符串
- java - 如何将 Intellij 从 64 位切换到 32 位