首页 文章

WCF CultureInfo类型DataMember序列化CommunicationException

提问于
浏览
1

当我使用CultureInfo Typed DataMember调用我的WCF服务的Method时,它会抛出CommunicationException .

我怎么解决这个问题?

InnerException消息是'Type'System.Globalization.GregorianCalendar',数据协定名称为'GregorianCalendar:http://schemas.datacontract.org/2004/07/System.Globalization'不是预期的 . 将任何静态未知的类型添加到已知类型列表中

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

1 回答

  • 5

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

    <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

相关问题