假设我有一个像这样的 xml 文件:
<ArrayOfInternetProxy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<InternetProxy>
<ProxyName />
<ProxyIP>23.19.34.127:8800</ProxyIP>
<Username />
<Password />
</InternetProxy>
</ArrayOfInternetProxy>
还有更多<InternetProxy>
在 xml 文件中,但为了清楚起见,我删除了它们。
<InternetProxy>
代表我程序中的一个对象,而 <ArrayOfInternetProxy>
表示所述对象的数组。
如何更改标签 <ArrayOfInternetProxy>
和<InternetProxy>
成为我喜欢的样子?
我设法使用以下方法更改属性:
[XmlElement("ProxyName")]
public string ProxyName { get; set; }
但这不适用于其他标签。
谢谢。
我的类(class):
public class InternetProxy //I want to change this in the xml output
{
[XmlElement("ProxyName")]
public string ProxyName { get; set; }
[XmlElement("ProxyIP")]
public string Address { get; set; }
[XmlElement("Username")]
public string UserName { get; set; }
[XmlElement("Password")]
public string Password { get; set; }
}
编辑:
这是我尝试过的,为什么这对我不起作用?
[XmlElement("Proxies")]
[XmlArray("Proxies")]
List<InternetProxy> proxies;
最佳答案
你应该有这样的东西:
[XmlArray("Proxies")]
public InternetProxy[] InternetProxy
{
get;
set;
}
要控制其序列化方式,您可以应用以下属性:
XmlArrayAttribute
:它将更改数组的名称(您实际的ArrayOfInternetProxy
)。XmlArrayItemAttribute
:它将更改数组项的名称(您的实际InternetProxy
)。
如果直接序列化数组(因此数组没有此类属性),则应该应用 XmlType 属性,例如:
[XmlType(TypeName="Proxies")]
public class InternetProxy
{
}
参见http://msdn.microsoft.com/en-us/library/2baksw0z(v=vs.10).aspx了解详情。
关于c# - 如何更改 XML 父标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9808744/