DataContractSerializer.MaxItemsInObjectGraph Właściwość
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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ć je w konfiguracji, dodaj zachowanie niestandardowe do sekcji zachowania i dodaj następujące ustawienie.
<behaviors> <behavior name="MyServiceBehavior"> <dataContractSerializer maxItemsInObjectGraph="3" /> </behavior></behaviors>
Aby 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.
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 serializator serializuje lub deserializuje w jednym ReadObject wywołaniu metody. (Metoda zawsze odczytuje jeden obiekt główny, ale ten obiekt może mieć inne obiekty w jego składowych 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ż zauważyć, że niektóre obiekty mogą mieć dużą reprezentację pamięci i 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ą, należy to zrobić zarówno po stronach wysyłania (serializowania) i odbierania (deserializacji). Ma zastosowanie zarówno podczas odczytywania, jak i zapisywania danych.