【问题标题】:WCF + Silverlight 4: How to configure known types via Web.config?WCF + Silverlight 4:如何通过 Web.config 配置已知类型?
【发布时间】:2011-03-04 06:11:32
【问题描述】:

我想知道当我们使用 Silverlight 4 客户端时,是否可以按照this answer 中描述的方式配置已知类型?

似乎唯一可行的方法是使用KnownType 属性,我们希望避免这种解决方案,因为这些类位于不同的程序集中并且我们不希望它们之间存在依赖关系。

这是一个配置示例:

<?xml version="1.0"?>
<configuration>
  <!-- *snip* -->
  <system.runtime.serialization>
    <dataContractSerializer>
      <declaredTypes>
        <add type="Foo.Dto.FooDto, Foo.Dto, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null, processorArchitecture=MSIL">
          <knownType type="Foo.Dto.BarDto, Foo.Dto, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null, processorArchitecture=MSIL" />
          <knownType type="Foo.Dto.BizDto, Foo.Dto, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null, processorArchitecture=MSIL" />
        </add>
      </declaredTypes>
    </dataContractSerializer>
  </system.runtime.serialization>
  <!-- *snip* -->
</configuration>

【问题讨论】:

    标签: c# wcf silverlight-4.0


    【解决方案1】:

    查看有关该主题的MSDN docs - 基本上,这就是您所需要的:

    <configuration>
       <system.runtime.serialization>
           <dataContractSerializer>
               <declaredTypes>
                 <add type="MyCompany.Library.Shape, MyAssembly, Version=2.0.0.0, Culture=neutral, PublicKeyToken=XXXXXX, processorArchitecture=MSIL">
                     <knownType type="MyCompany.Library.Circle, MyAssembly, Version=2.0.0.0, Culture=neutral, PublicKeyToken=XXXXXX, processorArchitecture=MSIL"/>
                 </add>
               </declaredTypes>
           </dataContractSerializer>
       </system.runtime.serialization>
    </configuration> 
    

    【讨论】:

    • 我可能做错了什么,但我无法获取配置文件中指定的已知类型。以这种方式配置它们总是会导致 Silverlight 端出错。
    • @chlb:你能向我们展示你的配置文件吗?请通过编辑来更新您的原始问题...谢谢!
    • 我已编辑我的问题以包含配置示例。
    • 我们对这个问题采取了另一种解决方法,最终发现Microsoft.Silverlight.ServiceReference生成的Reference.cs文件由于某种原因不包含已知的类型配置。我会将您的答案标记为正确答案,因为这是配置文件的外观。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-20
    • 2011-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多