DataContractSerializer.MaxItemsInObjectGraph Właściwość

Definicja

Pobiera maksymalną liczbę elementów na grafie obiektu w celu serializacji lub deserializacji.

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

Maksymalna liczba elementów do serializacji lub deserializacji. Wartość domyślna to Int32.MaxValue.

Wyjątki

Liczba elementów przekracza maksymalną wartość.

Uwagi

Tę właściwość można ustawić w konfiguracji lub imperatywnie w kodzie. Aby ustawić ją w konfiguracji, dodaj niestandardowe zachowanie do sekcji zachowania i dodaj następujące ustawienie.

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

Aby ustawić tę właściwość imperatywnie 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.

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

Właściwość MaxItemsInObjectGraph określa maksymalną liczbę obiektów, które serializuje serializator lub deserializuje w wywołaniu pojedynczej ReadObject metody. (Metoda zawsze odczytuje jeden obiekt główny, ale ten obiekt może mieć inne obiekty w jego elementach członkowskich danych. Te obiekty mogą mieć inne obiekty itd.) Wartość domyślna to MaxValue. Należy pamiętać, że podczas serializacji lub deserializacji tablic każdy wpis tablicy liczy się jako oddzielny obiekt. Należy również pamiętać, że niektóre obiekty mogą mieć dużą reprezentację pamięci, dlatego ten limit przydziału może nie być wystarczający, aby zapobiec atakom typu "odmowa usługi". Aby uzyskać więcej informacji, zobacz Zagadnienia dotyczące zabezpieczeń danych. Jeśli musisz zwiększyć ten limit przydziału poza jego wartość domyślną, ważne jest, aby to zrobić zarówno na stronach wysyłania (serializacji) i odbierania (deserializacji). Ma zastosowanie zarówno podczas odczytywania, jak i zapisywania danych.

Dotyczy