C# 不含组元素的列表的CollectionDataContractAttribute
我的问题是,我想使用CollectionDataControlAttribute来反序列化没有group元素的集合。xml如下所示:C# 不含组元素的列表的CollectionDataContractAttribute,c#,wcf,datacontractserializer,C#,Wcf,Datacontractserializer,我的问题是,我想使用CollectionDataControlAttribute来反序列化没有group元素的集合。xml如下所示: <RootElement> <SomeProperty /> <ListElementEntry /> <ListElementEntry /> <ListElementEntry /> <ListElementEntry /> </RootEle
<RootElement>
<SomeProperty />
<ListElementEntry />
<ListElementEntry />
<ListElementEntry />
<ListElementEntry />
</RootElement>
其中ListElementEntry显示零次或多次
感谢帮助它必须是
DataContractSerializer
?您可以选择对WCF使用XmlSerializer
,然后可以使用:
[XmlRoot("RootElement"), XmlType("RootElement")]
public class Foo {
public string SomeProperty {get;set;}
[XmlElement("ListElementEntry")]
public List<Bar> Bars {get {return bars;}}
private readonly List<Bar> bars = new List<Bar>();
}
[XmlRoot(“RootElement”)、XmlType(“RootElement”)]
公开课Foo{
公共字符串SomeProperty{get;set;}
[XmlElement(“ListElementEntry”)]
公共列表栏{获取{返回栏;}}
私有只读列表栏=新列表();
}
归根结底,
DataContractSerializer
的设计目的并不是为您提供相同级别的xml控制,这就是为什么它甚至不支持属性。如果您需要特定的xml,XmlSerializer
通常是更好的选择。是否有特定的原因需要使用DataContractSerializer(我不知道CollectionDataControlAttribute是什么)。XmlSerializer可以很容易地实现这一点,如果这是一个选项的话。这正是我最终的目标。谢谢你的帮助。