Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 不含组元素的列表的CollectionDataContractAttribute_C#_Wcf_Datacontractserializer - Fatal编程技术网

C# 不含组元素的列表的CollectionDataContractAttribute

C# 不含组元素的列表的CollectionDataContractAttribute,c#,wcf,datacontractserializer,C#,Wcf,Datacontractserializer,我的问题是,我想使用CollectionDataControlAttribute来反序列化没有group元素的集合。xml如下所示: <RootElement> <SomeProperty /> <ListElementEntry /> <ListElementEntry /> <ListElementEntry /> <ListElementEntry /> </RootEle

我的问题是,我想使用CollectionDataControlAttribute来反序列化没有group元素的集合。xml如下所示:

<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可以很容易地实现这一点,如果这是一个选项的话。这正是我最终的目标。谢谢你的帮助。