Поделиться через


<declaredTypes>

Содержит известные типы, которые DataContractSerializer использует при десериализации.

Дополнительные сведения о контрактах данных и известных типах см. в разделе Известные типы контракта данных.

<Конфигурации>
  <system.runtime.serialization>
    <Datacontractserializer>
      <declaredTypes>

Синтаксис

<configuration>
  <system.runtime.serialization>
    <dataContractSerializer>
      <declaredTypes>
        <add type="String ">
          <knownType type="String">
            <parameter index="Integer"/>
          </knownType>
        </add>
      </declaredTypes>
    </dataContractSerializer>
  </system.runtime.serialization>
</configuration>

Атрибуты и элементы

В следующих разделах описаны атрибуты, дочерние и родительские элементы.

Атрибуты

Отсутствует.

Дочерние элементы

Элемент Описание
<добавление> Добавляет типы, для которых необходимы известные типы.

Родительские элементы

Элемент Описание
<Datacontractserializer> Содержит данные конфигурации для DataContractSerializer.

Комментарии

Дополнительные сведения об известных типах см . в разделах Известные типы контракта данных и DataContractSerializer.

Пример

В следующем XML-коде показаны объявленные типы и известные типы, добавленные в DataContractSerializer элемент . В этом примере показаны три добавляемых типа. Первый тип - это пользовательский тип с именем «Orders», использующий известный тип с именем «Item». Второй объявленный тип - это List<T>, использующий Item в качестве известного типа. Наконец, третий объявленный тип - это Dictionary<TKey,TValue>. Тип класса Dictionary<TKey,TValue> является универсальным типом с двумя параметрами типов. Первый представляет ключ, а второй представляет значение. В следующем примере параметр второго типа List<T> (значение) добавляется к списку известных типов. Чтобы задать параметр типа для использования в известном типе, необходимо использовать атрибут index. В данном примере тип значения указан атрибутом индекса, для которого задано значение 1 (коллекция начинается с нуля).

<configuration>
  <system.runtime.serialization>
    <dataContractSerializer>
      <declaredTypes>
        <add type="Examples.Types.Orders, SerializationTypes, Version = 2.0.0.0, Culture = neutral, PublicKeyToken=null">
          <knownType type="Examples.Types.Item, SerializationTypes, Version=2.0.0.0, Culture=neutral, PublicKey=null" />
        </add>
        <add type="System.Collections.Generic.List`1, SerializationTypes, Version = 2.0.0.0, Culture = neutral, PublicKeyToken=null">
          <knownType type="Examples.Types.Item, SerializationTypes, Version=2.0.0.0, Culture=neutral, PublicKey=null" />
        </add>
        <add type="System.Collections.Generic.Dictionary`2, SerializationTypes, Version = 2.0.0.0, Culture = neutral, PublicKeyToken=null">
          <knownType type="System.Collections.Generic.List`1, SerializationTypes, Version = 2.0.0.0, Culture = neutral, PublicKeyToken=null">
            <parameter index="1"/>
          </knownType>
        </add>
      </declaredTypes>
    </dataContractSerializer>
  </system.runtime.serialization>
</configuration>

См. также раздел