首页 文章

WCF无法序列化.NET基类型

提问于
浏览
6

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

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

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

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

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

  • 1

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

相关问题