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


DataContractSerializer.MaxItemsInObjectGraph Свойство

Определение

Возвращает максимальное количество элементов в графе объекта для сериализации или десериализации.

public:
 property int MaxItemsInObjectGraph { int get(); };
public int MaxItemsInObjectGraph { get; }
member this.MaxItemsInObjectGraph : int
Public ReadOnly Property MaxItemsInObjectGraph As Integer

Значение свойства

Максимальное количество элементов для сериализации или десериализации. Значение по умолчанию — Int32.MaxValue.

Исключения

Количество элементов превышает максимальное значение.

Комментарии

Это свойство может быть задано в конфигурации или императивно в коде. Для задания в конфигурации добавьте пользовательское поведение в раздел поведения и добавьте следующий параметр.

<behaviors>    <behavior name="MyServiceBehavior">        <dataContractSerializer maxItemsInObjectGraph="3" />    </behavior></behaviors>

Чтобы установить это свойство императивно в коде, найдите описание операции службы, затем получите поведение операции и установите свойство, как показано в следующем коде.

OperationDescription operation = host.Description.Endpoints[0].Contract.Operations.Find("MyOperationName");operation.Behaviors.Find<DataContractSerializerOperationBehavior>().MaxItemsInObjectGraph = 3;

Свойство MaxItemsInObjectGraph указывает максимальное количество объектов, сериализуемых или десериализуемых сериализатором в одном вызове метода ReadObject. (Метод всегда считывает один корневой объект, но этот объект может содержать другие объекты в своих элементах данных. Эти объекты могут иметь другие объекты и т. д.) Значение по умолчанию — MaxValue. Обратите внимание, что при сериализации или десериализации массивов каждая запись массива считается отдельным объектом. Также обратите внимание, что некоторые объекты могут иметь большое представление в памяти, поэтому одной этой квоты может быть недостаточно для предотвращения атак типа "отказ в обслуживании". Дополнительные сведения см. в разделе Вопросы безопасности для данных. При необходимости сделать квоту выше, чем задано по умолчанию, следует увеличить ее и на стороне отправки (сериализации), и на стороне получения (десериализации). Квота действует как при чтении, так и при записи данных.

Применяется к