2011-06-16 63 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