C# XML属性为";综合物业;

C# XML属性为";综合物业;,c#,xml,xml-serialization,deserialization,C#,Xml,Xml Serialization,Deserialization,我不确定这是否可行,但我会尽可能连贯地表达我的问题 我正在学习对象的ISerializable和XMLSerializer,因为我已经厌倦了编写xml。我有以下xml <Person> <FName>John</FName> <LName>Smith</LName> <Address Type = "Road">1623 Stagecoach</Address> </Person> 而不是添加Add

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

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

<Person>
<FName>John</FName>
<LName>Smith</LName>
<Address Type = "Road">1623 Stagecoach</Address>
</Person>
而不是添加AddressType=Road的属性

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

想到的示例是Label的字体属性或大小属性

编辑:


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

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

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