2011-02-04 75 views
2

我不知道使用了什么序列化程序,但在使用Datacontract属性的Name属性时,在序列化过程中看到一些不一致的行为。DataContract未使用属性中指定的Name属性

下面是我在做什么的例子:

[XmlRoot(ElementName = "ASerCollection")] 
public class SerCollection : List<ColElem> 
{ 
} 

[DataContract(Name = "SomethignElse", Namespace = "")] 
public class ColElem 
{ 

} 

我遇到的问题是,序列化是产生类似下面的XML:

<ASerCollection> 
<ColElem /> 
</ASerCollection> 

我做这是WCF服务的一部分。请让我知道,如果有什么我可以做的不同,以强制使用我的datacontract的“名称”属性。

感谢

回答

2

这是因为:

  • XMLRootAttribute所使用的XmlSerializer
  • DataContractAttribute所使用的DataContractSerializer

一个人并不了解其他的属性。 根据你想要做什么以及你的类之间的关系,我认为你应该阅读如何引导上面提到的序列化器,并选择满足需求的序列化器。

下面是几个环节:

希望这有助于一点。