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. Обратите внимание, что при сериализации или десериализации массивов каждая запись массива считается отдельным объектом. Кроме того, обратите внимание, что некоторые объекты могут иметь большое представление памяти, поэтому эта квота может оказаться недостаточной, чтобы предотвратить атаки типа "отказ в обслуживании". Дополнительные сведения см. в разделе Вопросы безопасности данных для. Если необходимо увеличить эту квоту за рамки по умолчанию, важно сделать это как для отправки (сериализации), так и для получения (десериализации) сторон. Он применяется как при чтении, так и при записи данных.