我有一个奇怪的XML设置在这里:我需要一个第三方及其XML布局,他们正在使用的接口是超出了我的控制 - 没有机会改变什么...C# - XML序列化:在我的XML输出省略某个元素
在更大的XML的范围,我觉得自己需要序列化(后来还反序列化),这被定义为具有Type
和Number
属性的项目的列表(移动设备) (两个字符串)。因此,这将是这样的:
public class SerialNumber
{
public string Type { get; set; }
public string Number { get; set; }
}
,这将通常序列化List<SerialNumber> SerialNumbers
作为
<SerialNumbers>
<SerialNumber>
<Type>SN</Type>
<Number>CBS583ABC123</Number>
</SerialNumber>
<SerialNumber>
<Type>IMEI</Type>
<Number>35-924106-659945-4</Number>
</SerialNumber>
</SerialNumbers>
然而,在我的情况,我需要发送此XML:
<SerialNumbers>
<Type>SN</Type>
<Number>CBS583ABC123</Number>
<Type>IMEI</Type>
<Number>35-924106-659945-4</Number>
</SerialNumbers>
所以基本上,这个列表元素需要省略 - 我只需要一个容器<SerialNumbers>
然后对于li中的每个条目st,我只需要序列化出Type
和Number
子元素。
我怎么能与XmlSerializer
.NET这样做容易吗?
我试图用
[XmlRoot(ElementName="")]
public class SerialNumber
或
[XmlArray]
[XmlArrayItem(ElementName = "")]
public List<SerialNumber> SerialNumbers { get; set; }
但既不是这些工作的 - 我仍然得到我的全系列化与<SerialNumbers>
容器内的<SerialNumber>
元素...
有没有一个简单的伎俩来实现我在找什么?我宁愿不是去低级别,并开始一起手动我的XML一起conceilating ....
谢谢!
有一个解决方案在这里:与RestSharp的Xml序列反序列化(http://stackoverflow.com/a/32885108/3744182 )。问题是用于restsharp,但答案使用'XmlSerializer'。 – dbc