c# - 没有组元素的列表的 CollectionDataContractAttribute

标签 c# wcf datacontractserializer

我的问题是我想使用 CollectionDataControlAttribute 来反序列化一个没有组元素的集合。 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>();
}

最终,DataContractSerializer 只是未设计来为您提供相同级别的 xml 控制 - 这就是它甚至不支持属性的原因。如果您需要特定的 xml,XmlSerializer 通常是更好的选择。

关于c# - 没有组元素的列表的 CollectionDataContractAttribute,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3197554/

相关文章:

c# - Application Insights - 服务器没有显示任何数据

.net - 通用 WCF JSON 反序列化

c# - 存储过程 DAL

c# - 动态装配解析/管理

c# - 使用带有后续 try-finally 子句的 ReaderWriterLockSlim.EnterXXX() 模式是否完全安全

c# - 如何将参数传递给 WCF post 方法(restful 服务)

使用 DataContractSerializer 序列化大对象图时出现 C# StackOverFlowException

.net - 双向实体或循环依赖项的 WCF DataContract 序列化

c# - 简单的喷油器 : Registering a dynamically created delegate

c# - Entity Framework - 如何将连接字符串更改为相对的?