2014-11-04 65 views
1

我不确定这是否可行,但我会尝试尽可能一致地说出我的问题。XML属性为“复杂属性”

我正在学习对象的ISerielizable和XMLSerializer,因为我厌倦了编写XML。我有以下的XML。

<Person> 
<FName>John</FName> 
<LName>Smith</LName> 
<Address Type = "Road">1623 Stagecoach</Address> 
</Person> 

我与

string FName 
string LName 
string Address 

属性的人对象,而不是添加的地址类型=路的属性,

我怎样才能serilize地址节点的Type属性是地址属性的一部分。

想到的例子是Label的Font属性或Size属性。

编辑:

由于我重读这一点,我意识到简单的答案是增加一个新的地址类和一切顺利干净。我想我的问题是,除此之外还有其他方法吗?

回答

2

那么你可能想先改变你的类库,然后再进行序列化。尝试制作:

[XmlRoot("Person")] 
public class Person() 
{ 
[XmlElement("FName")] 
public string Fname { get; set; } 

[XmlElement("LName")] 
public string LName { get; set; } 

[XmlElement("Address")]  
public Address Address; 
} 

public class Address() 
{ 
[XmlAttribute("Type")] 
public string Type { get; set; } 

[XmlType] 
public string AddrValue { get; set; } 
}