【问题标题】:.NET XmlSerializer XML format.NET XmlSerializer XML 格式
【发布时间】:2011-06-16 17:20:34
【问题描述】:

有没有办法让 XmlSerializer 将对象的属性序列化为属性 而不是作为元素?

喜欢: Person.Phone="1 800 给我打电话"

会变成:

[个人电话="1 800 CALL ME" /]

代替:

[Person][Phone]1 800 CALL ME[/Phone][/Person]

【问题讨论】:

  • 通过实现 IXmlSerializable,您可以准确控制对象的序列化方式。
  • @Magnus 这通常是一种不好的做法;很难稳健地做...

标签: .net xml format xmlserializer


【解决方案1】:

当然……

public class Person
{
    [XmlAttribute]
    public string Phone {get;set;}
}

您还可以通过查看属性参数来更改名称/命名空间等。

【讨论】:

  • 谢谢。我相信这是建议使用 XmlAttribute 的第一个答案。有点不确定,大多数答案显示“2 小时前”,但“最旧”选项卡将这个选项排在首位。
【解决方案2】:

你可以这样做

[Serializable]
public class Person
{         
      [XmlAttribute()]
      public string Phone { get; set;}

      Or

      [XmlAttribute("Phone")]
      public string Phone123 { get;set;}
}

【讨论】:

  • XmlSerializer 不检查(也不需要)[Serializable]
【解决方案3】:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-21
    • 1970-01-01
    • 1970-01-01
    • 2011-05-01
    相关资源
    最近更新 更多