DataContractSerializer.MaxItemsInObjectGraph Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Získá maximální počet položek v grafu objektu serializovat nebo deserializovat.
public:
property int MaxItemsInObjectGraph { int get(); };
public int MaxItemsInObjectGraph { get; }
member this.MaxItemsInObjectGraph : int
Public ReadOnly Property MaxItemsInObjectGraph As Integer
Hodnota vlastnosti
Maximální počet položek k serializaci nebo deserializaci. Výchozí hodnota je Int32.MaxValue.
Výjimky
Počet položek překračuje maximální hodnotu.
Poznámky
Tuto vlastnost lze nastavit v konfiguraci nebo imperativní v kódu. Pokud ho chcete nastavit v konfiguraci, přidejte do části chování vlastní chování a přidejte následující nastavení.
<behaviors>
<behavior name="MyServiceBehavior">
<dataContractSerializer maxItemsInObjectGraph="3" />
</behavior>
</behaviors>
Chcete-li nastavit tuto vlastnost imperativní v kódu, vyhledejte popis operace služby, pak získejte chování operace a nakonec nastavte vlastnost, jak je znázorněno v následujícím kódu.
OperationDescription operation = host.Description.Endpoints[0].Contract.Operations.Find("MyOperationName");
operation.Behaviors.Find<DataContractSerializerOperationBehavior>().MaxItemsInObjectGraph = 3;
Vlastnost MaxItemsInObjectGraph určuje maximální počet objektů, které serializátor serializuje nebo deserializuje v jednom ReadObject volání metody. (Metoda vždy čte jeden kořenový objekt, ale tento objekt může mít jiné objekty ve svých datových členech. Tyto objekty mohou mít jiné objekty atd.) Výchozí hodnota je MaxValue. Všimněte si, že při serializaci nebo deserializaci polí se každá položka pole počítá jako samostatný objekt. Všimněte si také, že některé objekty mohou mít velkou reprezentaci paměti, a proto tato kvóta nemusí být dostatečná, aby se zabránilo útokům DoS. Pro více informací, viz Bezpečnostní úvahy týkající se dat. Pokud potřebujete tuto kvótu zvýšit nad rámec výchozí hodnoty, je důležité to udělat jak na straně odesílání (serializace), tak na straně příjmu (deserializace). Platí pro čtení i zápis dat.