.net 序列化时如何重命名xml元素属性?

.net 序列化时如何重命名xml元素属性?,.net,xml,xml-serialization,xml-deserialization,xml-attribute,.net,Xml,Xml Serialization,Xml Deserialization,Xml Attribute,我想要为元素属性使用自定义名称的xml,我声明了如下所示的名称 [XmlRoot(ElementName = "country")] public class CountryInRegion { [XmlElement(ElementName = "iso_code")] public string IsoCode { get; set; } [XmlElement(ElementName = "name")] public string Name { get;

我想要为元素属性使用自定义名称的xml,我声明了如下所示的名称

[XmlRoot(ElementName = "country")]
public class CountryInRegion
{
    [XmlElement(ElementName = "iso_code")]
    public string IsoCode { get; set; }

    [XmlElement(ElementName = "name")]
    public string Name { get; set; }

    [XmlElement(ElementName = "region_id")]
    public string RegionId { get; set; }
}

[XmlRoot(ElementName = "countries")]
public class Countries
{
    [XmlArray(ElementName = "country")]
    public IList<CountryInRegion> countries { get; set; }

    public Countries()
    {
        countries = new List<CountryInRegion>();
    }
}
[XmlRoot(ElementName=“country”)]
公共类国家地区
{
[XmlElement(ElementName=“iso_代码”)]
公共字符串等位码{get;set;}
[xmlement(ElementName=“name”)]
公共字符串名称{get;set;}
[xmlement(ElementName=“region_id”)]
公共字符串RegionId{get;set;}
}
[XmlRoot(ElementName=“countries”)]
公营国家
{
[XmlArray(ElementName=“country”)]
公共IList国家{get;set;}
公共国家()
{
国家=新名单();
}
}
我得到的结果是这样的

<Countries>
 <countries>
  <CountryInRegion>
   <IsoCode>AD</IsoCode>
   <Name>Andorra</Name>
   <RegionId>EUROPE</RegionId></CountryInRegion>
  </CountryInRegion>
 </countries>
</Countries>

公元
安道尔
欧洲

我也尝试了[XmlElement(“name”)。但是没有得到任何更改

根据您从obj生成xml的方式,您可能希望显式地将类声明为[Serializable],请参见。您的重命名看起来很好