如何序列化与数字ITEMNAME XML集合?

问题描述 投票:0回答:1

我一直在淘MSDN和谷歌网页,用于回答以下问题。

如何序列化是在C#如下命名集合?

 <foocollection>
 <fooitem1></fooitem1>
 <fooitem2></fooitem2>
 ...
 </foocollection>

我看到,你可以在DataContract做到这一点:

[CollectionDataContract(Name="foocollection", ItemName = "fooitem")]
public class FooCollection<T> : List<T> {
    public FooCollection(){}
    public FooCollection(T[] items){ 
      foreach(var i in items){
        Add(i);
      }
    }
}

串行器是从的ASP.NET Web API的默认XML序列化。此代码假定上面贴的XML是来自客户端。

我已成功序列化的上述动态的,而是动态不会是可接受的解决方案。

我将如何实现系列化成功地使用任何以下的命名空间,或他人的,与我可以序列化到上面的类的警告?我愿意增加额外的类在必要时作出上述工作只是只要我没有做一个类集合中的每一个项目。

 System.ComponentModel.DataAnnotations
 System.Xml.Serialization

预先感谢您非常多。

c# wcf serialization datacontract
1个回答
0
投票

因为你没有提到你使用什么方法XML序列化的,这是很难说,但你可能应该是为了使DataContract属性使用DataContractSerializer。为了利用CollectionDataContractAttribute你还要有这样的集合类,你把说属性,就像这个example

© www.soinside.com 2019 - 2024. All rights reserved.