DataContractSerializer.MaxItemsInObjectGraph Właściwość

Definicja

Pobiera maksymalną liczbę elementów w grafie obiektów do serializacji lub deserializacji.Gets the maximum number of items in an object graph to serialize or deserialize.

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

Wartość właściwości

Int32

Maksymalna liczba elementów do serializacji lub deserializacji.The maximum number of items to serialize or deserialize. Wartość domyślna to MaxValue.The default is MaxValue.

Wyjątki

Liczba elementów przekracza wartość maksymalną.The number of items exceeds the maximum value.

Uwagi

Tę właściwość można ustawić w konfiguracji lub w sposób bezwzględnie w kodzie.This property can be set in configuration or imperatively in code. Aby ustawić je w konfiguracji, Dodaj zachowanie niestandardowe do sekcji zachowania i Dodaj następujące ustawienie.To set it in configuration, add a custom behavior to the behaviors section and add the following setting.

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

Aby odpowiednio ustawić tę właściwość w kodzie, Znajdź opis operacji usługi, a następnie Pobierz zachowanie operacji, na koniec ustaw właściwość, jak pokazano w poniższym kodzie.To set this property imperatively in code find the operation description of the service, then get the operation behavior, finally set the property as shown in the following code.

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

MaxItemsInObjectGraphWłaściwość określa maksymalną liczbę obiektów, które serializator serializować lub deserializacji w jednym ReadObject wywołaniu metody.The MaxItemsInObjectGraph property specifies the maximum number of objects that the serializer serializes or deserializes in a single ReadObject method call. (Metoda zawsze odczytuje jeden obiekt główny, ale ten obiekt może mieć inne obiekty w jego składowych danych.(The method always reads one root object, but this object may have other objects in its data members. Obiekty te mogą mieć inne obiekty itd.) Wartość domyślna to MaxValue .Those objects may have other objects, and so on.) The default is MaxValue. Należy pamiętać, że podczas serializacji lub deserializacji tablic każda pozycja tablicy jest traktowana jako oddzielny obiekt.Note that when serializing or deserializing arrays, every array entry counts as a separate object. Należy również pamiętać, że niektóre obiekty mogą mieć znaczną reprezentację pamięci, więc ten limit przydziału może być niewystarczający, aby zapobiec atakom typu "odmowa usługi".Also, note that some objects may have a large memory representation and so this quota alone may not be sufficient to prevent Denial of Service attacks. Aby uzyskać więcej informacji, zobacz zagadnienia dotyczące zabezpieczeń danych.For more information, see Security Considerations for Data. Jeśli trzeba zwiększyć ten limit przydziału poza wartością domyślną, ważne jest, aby wykonać tę czynność zarówno na stronach wysyłania (serializacji), jak i otrzymywania (deserializacji).If you need to increase this quota beyond its default value, it is important to do so both on the sending (serializing) and receiving (deserializing) sides. Jest ona stosowana podczas odczytywania i zapisywania danych.It applies both when reading and writing data.

Dotyczy