6

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

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

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

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

4

2 回答 2

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 中消失。

于 2010-03-04T22:49:42.750 回答
1

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

于 2008-10-31T02:45:42.873 回答