WCF + Silverlight 4: Как настроить известные типы через Web.config? - PullRequest
4 голосов
/ 04 марта 2011

Я хочу знать, можно ли настроить известные типы способом, описанным в в этом ответе , когда мы используем клиент Silverlight 4?

Единственное, что, похоже, работает, - это использование атрибута 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>

1 Ответ

1 голос
/ 04 марта 2011

Ознакомьтесь с MSDN документами по теме - в основном, это то, что вам нужно:

<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> 
...