【问题标题】:WCF CultureInfo Typed DataMember Serialization CommunicationExceptionWCF CultureInfo 类型化 DataMember 序列化 CommunicationException
【发布时间】:2014-05-13 14:22:25
【问题描述】:

当我使用 CultureInfo 类型的 DataMember 调用 WCF 服务的方法时,它会抛出 CommunicationException。

我该如何解决这个问题?

内部异常 消息是带有数据的'Type'System.Globalization.GregorianCalendar' 合同名称 '公历:http://schemas.datacontract.org/2004/07/System.Globalization' 预计不会。将任何静态未知的类型添加到已知列表中 类型

[DataContract]
class MyClass
{
    [DataMember]
    public CultureInfo UserCulture { get; set; } 
}

【问题讨论】:

    标签: c# wcf serialization


    【解决方案1】:

    将此配置添加到主机和客户端配置中。

    <system.runtime.serialization>
    <dataContractSerializer>
      <declaredTypes>
        <add type="System.Globalization.CultureInfo, mscorlib,Version=2.0.0.0, Culture = neutral, PublicKeyToken=b77a5c561934e089">
          <knownType type="System.Globalization.GregorianCalendar,mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
        </add>
      </declaredTypes>
    </dataContractSerializer>
    

    CultureInfo 包含基类 Calendar 的日历字段和 它不知道专门的 GregorianCalendar 类型,但我们 希望通过添加 knowntype 属性来解决这个问题。

    http://www.vistax64.com/indigo/65776-cultureinfo-serialization-issue-gregoriancalendar-wcf.html

    【讨论】:

    • 太棒了,我遇到了这个问题,这个解决方案效果很好!谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-11
    • 2020-10-14
    • 1970-01-01
    相关资源
    最近更新 更多