2011-06-16 62 views
1

有没有办法让XmlSerializer将对象属性序列化为属性 而不是元素?.NET XmlSerializer XML格式

像: Person.Phone = “1 800 CALL ME”

将成为:

[人电话= “1 800 CALL ME”/]

代替:

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

+0

通过实施IXmlSerializable的,你可以精确控制如何对象序列化我。 – Magnus 2011-06-16 17:23:09

+0

@Magnus通常是一种不好的做法;很难做到有力... – 2011-06-16 17:35:08

回答

2

当然...

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

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

+0

谢谢。我相信这是第一个建议使用XmlAttribute的答案。有点不确定,大多数答案显示“2小时前”,但“最旧”选项卡排在前面。 – vlscanner 2011-06-16 19:48:44

2

你可以做这样

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

     Or 

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

XmlSerializer不检查(并且不需要)'[Serializable]' – 2011-06-16 18:17:55