假设我有一个像这样的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>
xml文件中还有更多<InternetProxy>
,但为了清楚起见,我删除了它们。
<InternetProxy>
表示程序中的对象,而<ArrayOfInternetProxy>
表示所述对象的数组。
如何将标记<ArrayOfInternetProxy>
和<InternetProxy>
更改为我喜欢的内容?
我设法通过使用:
来更改属性 [XmlElement("ProxyName")]
public string ProxyName { get; set; }
但这不适用于其他标签。
感谢。
我的课程:
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;
答案 0 :(得分:2)
你应该有类似的东西:
[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。