【问题标题】:.NET base type cannot be serialized by WCF.NET 基类型不能被 WCF 序列化
【发布时间】:2010-09-19 23:58:28
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: wcf serialization datacontract datamember configurationelement


    【解决方案1】:

    今天刚碰到这个问题。这很令人困惑,因为问题出现在将项目从一台机器转移到另一台机器上。这篇文章似乎相关:

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

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

    【讨论】:

    • 我也有同样的情况。您需要 3.5 SP1 来自动序列化 POCO 类型。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多