XML属性为“;复杂属性”;

本文关键字:属性 复杂 XML | 更新日期: 2023-09-27 18:29:01

我不确定这是否可能,但我会尽可能连贯地表达我的问题。

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

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

我有一个人对象具有的属性

string FName
string LName
string Address

没有添加AddressType=Road的属性

如何将地址节点的Type属性序列化为地址属性的一部分。

脑海中浮现的示例是Label的Font属性或Size属性。

编辑:

当我重读这篇文章时,我意识到简单的答案是添加一个新的地址类,一切都会很顺利。我想我的问题是,除此之外还有什么方法吗?

XML属性为“;复杂属性”;

您可能需要先更改类库,然后进行序列化。尝试制作:

[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; }
}