我正在编写WCF服务,并希望公开一些自定义配置元素(例如Custom ConfigurationSection和ConnectionStringSettings),以便我可以修改服务的配置。
我的一个自定义配置元素继承自System.Configuration.ConfigurationElementCollection
。当我尝试启动我的WCF服务时,我收到以下错误消息...
类型'System.Configuration.ConfigurationElementCollection'无法序列化。请考虑使用DataContractAttribute属性对其进行标记,并使用DataMemberAttribute属性标记要序列化的所有成员。
有没有办法为此类型实现DataContract?我的继承类标有[DataContract]属性。
答案 0 :(得分:4)
今天就遇到了这个问题。令人困惑的是,问题出现了将一个项目从一台机器转移到另一台机器。这篇文章似乎很相关:
总结链接腐烂的情况,问题似乎在运行时3.5中出现并在运行时3.5 SP1中消失。
答案 1 :(得分:1)
好的,最后我不得不重新设计我的解决方案。我发现SerializableConfigurationSection最有益。它是在EnterpriseLibrary的模式和实践中。因此,我不是尝试通过WCF传递自定义配置节,而是手动执行seralization / deserialization,并将配置节通过WCF作为字符串传递。