WCF无法序列化.NET基类型

时间:2008-10-30 13:59:45

标签: wcf serialization datacontract datamember configurationelement

我正在编写WCF服务,并希望公开一些自定义配置元素(例如Custom ConfigurationSection和ConnectionStringSettings),以便我可以修改服务的配置。

我的一个自定义配置元素继承自System.Configuration.ConfigurationElementCollection。当我尝试启动我的WCF服务时,我收到以下错误消息...

  

类型'System.Configuration.ConfigurationElementCollection'无法序列化。请考虑使用DataContractAttribute属性对其进行标记,并使用DataMemberAttribute属性标记要序列化的所有成员。

有没有办法为此类型实现DataContract?我的继承类标有[DataContract]属性。

2 个答案:

答案 0 :(得分:4)

今天就遇到了这个问题。令人困惑的是,问题出现了将一个项目从一台机器转移到另一台机器。这篇文章似乎很相关:

http://blogs.msdn.com/youssefm/archive/2009/08/10/serializing-plain-old-clr-objects-poco-types-with-datacontractserializer.aspx

总结链接腐烂的情况,问题似乎在运行时3.5中出现并在运行时3.5 SP1中消失。

答案 1 :(得分:1)

好的,最后我不得不重新设计我的解决方案。我发现SerializableConfigurationSection最有益。它是在EnterpriseLibrary的模式和实践中。因此,我不是尝试通过WCF传递自定义配置节,而是手动执行seralization / deserialization,并将配置节通过WCF作为字符串传递。