我正在编写一个小型C#应用程序,它需要能够以XML格式读取/写入一些配置数据。我这样做是通过创建一些简单的模型类,其中包含需要XmlElement
属性的属性,并通过XmlSerializer
运行整个事物。
我希望XmlSerializer
的行为与通常的一样,除了我希望序列化对象上的任何null属性都被写为空元素。 (目前它完全跳过它们。)同样,在反序列化时,我希望它将空元素解释为null,而不是空字符串。
实现这一目标最直接的方法是什么?我在类似情况下看到的建议涉及使用IsNullable
的{{1}}参数,创建XmlElement
方法等。必须为每个属性执行此操作,从而创建大量不必要的代码。在这种情况下,我希望它对于我(de)序列化的任何东西都是通用的。如果我需要扩展ShouldSerialize
,那很好,我可以在模型类上实现XmlSerializer
,但我不完全确定从哪两个可能的方法开始。