【问题标题】:XmlSerializer serialize empty/null string [duplicate]XmlSerializer 序列化空/空字符串[重复]
【发布时间】:2019-05-02 08:29:53
【问题描述】:

我如何序列化空字符串/空字符串。

因为现在它会序列化为这样的元素 <Element />

我希望它是这样的元素 <Element></Element>

现在我使用StringWriter 将其序列化为 XML。

这是我的代码:

using (var sw = new Utf8StringWriter())
{
    xmlSerializer.Serialize(sw, obj);
    string serializedContent = sw.ToString();
}

【问题讨论】:

  • <Element /><Element></Element> 在 xml 中完全一样。
  • @Caramiriel 好吧,它们是语义上等价的;但是,任何阅读器 API 通常都可以辨别出差异
  • 有没有可能因为元素不一样而导致读者读错?

标签: c# xml xmlserializer


【解决方案1】:

您可以使用 XmlElement 属性并指定该值应该可以为空。然后空元素将被序列化为正确的 nil 值。

例如:

public class EmployeeDetail
{
    [System.Xml.Serialization.XmlElement(IsNullable = true)]
    public string Address { get; set; }

    //// ....
}

【讨论】:

    【解决方案2】:

    你好,我不知道你的实现,但你可以尝试使用这个选项配置你的序列化器:

    w.Formatting = Formatting.Indented;
    

    它可能与自定义 XmlWriter 相同

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-04
      • 2012-07-08
      • 1970-01-01
      相关资源
      最近更新 更多