在C#XML序列化中去掉数组名
我试图在序列化XML时获得此结果:在C#XML序列化中去掉数组名,c#,xml,serialization,C#,Xml,Serialization,我试图在序列化XML时获得此结果: <Root Name="blah"> <SomeKey>Eldad</SomeKey> <Element>1</Element> <Element>2</Element> <Element>3</Element> <Element>4</Element> </root> 但是,这是我的结果(为了清
<Root Name="blah">
<SomeKey>Eldad</SomeKey>
<Element>1</Element>
<Element>2</Element>
<Element>3</Element>
<Element>4</Element>
</root>
但是,这是我的结果(为了清楚起见,删除了名称空间):
埃尔达
1.
2.
3.
是否有办法删除“元素”部分?在数组上使用XmlElement属性,这将指示序列化程序将数组项序列化为当前元素的子元素,而不是为数组创建新的根元素
[XmlRootAttribute(ElementName="Root", IsNullable=false)]
public class RootNode
{
[XmlAttribute("Name")]
public string Name { get; set; }
public string SomeKey { get; set; }
[XmlElement("Element")]
public List<int> Elements { get; set; }
}
[XmlRootAttribute(ElementName=“Root”,IsNullable=false)]
公共类根节点
{
[XmlAttribute(“名称”)]
公共字符串名称{get;set;}
公共字符串SomeKey{get;set;}
[XmlElement(“元素”)]
公共列表元素{get;set;}
}
也感谢克里斯·泰勒对我问题的回答。使用asmx web服务,我得到了以下XML:
<Manufacturers>
<Manufacturer>
<string>Bosch</string>
<string>Siemens</string>
</Manufacturer>
</Manufacturers>
博世
西门子
我想直接在元素中获取制造商名称,去掉元素,如下所示:
<Manufacturers>
<Manufacturer>Bosch</Manufacturer>
<Manufacturer>Siemens</Manufacturer>
</Manufacturers>
博世
西门子
对于其他有相同问题的人,我的代码(在VB.Net中)是:
_
公共函数GetManufacturers()作为制造商
新制造商的业绩不佳
结果。制造商。添加(“博世”)
结果。制造商。添加(“西门子”)
返回结果
端函数
_
公共类制造商
_
公共制造商作为新列表(字符串)
末级
对于字典,这不起作用,因为我们需要手动浏览项目:(
[XmlRootAttribute(ElementName="Root", IsNullable=false)]
public class RootNode
{
[XmlAttribute("Name")]
public string Name { get; set; }
public string SomeKey { get; set; }
[XmlElement("Element")]
public List<int> Elements { get; set; }
}
<Manufacturers>
<Manufacturer>
<string>Bosch</string>
<string>Siemens</string>
</Manufacturer>
</Manufacturers>
<Manufacturers>
<Manufacturer>Bosch</Manufacturer>
<Manufacturer>Siemens</Manufacturer>
</Manufacturers>
<WebMethod()> _
Public Function GetManufacturers() As Manufacturers
Dim result As New Manufacturers
result.Manufacturer.Add("Bosch")
result.Manufacturer.Add("Siemens")
Return result
End Function
<XmlRoot(ElementName:="Manufacturers")> _
Public Class Manufacturers
<XmlElement("Manufacturer")> _
Public Manufacturer As New List(Of String)
End Class