Nyelv

DataContractSerializer.MaxItemsInObjectGraph Tulajdonság

Definíció

Lekéri az objektumgráfban lévő elemek maximális számát szerializálni vagy deszerializálni.

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

Tulajdonság értéke

A szerializálni vagy deszerializálni kívánt elemek maximális száma. Az alapértelmezett érték az Int32.MaxValue.

Kivételek

Az elemek száma meghaladja a maximális értéket.

Megjegyzések

Ez a tulajdonság konfigurációban vagy kódban is beállítható. A konfiguráció beállításához adjon hozzá egy egyéni viselkedést a viselkedési szakaszhoz, és adja hozzá a következő beállítást.

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

A tulajdonság kódban való kötelező beállításához keresse meg a szolgáltatás műveletleírását, majd kérje le a művelet viselkedését, és végül állítsa be a tulajdonságot az alábbi kódban látható módon.

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

A MaxItemsInObjectGraph tulajdonság megadja az objektumok maximális számát, amelyeket a szerializáló szerializál vagy deszerializál egyetlen ReadObject metódushívásban. (A metódus mindig beolvassa az egyik gyökérobjektumot, de előfordulhat, hogy az objektumnak más objektumai is vannak az adattagjaiban. Ezek az objektumok lehetnek más objektumok, és így tovább.) Az alapértelmezett érték a következő MaxValue: . Vegye figyelembe, hogy tömbök szerializálása vagy deszerializálása során minden tömbbejegyzés külön objektumként számít. Vegye figyelembe azt is, hogy egyes objektumok memóriaképe nagy, ezért ez a kvóta önmagában nem elegendő a szolgáltatásmegtagadási támadások megelőzéséhez. További információkért tekintse meg az adatok biztonsági szempontjait. Ha ezt a kvótát az alapértelmezett értéken túl kell növelnie, fontos, hogy a küldési (szerializálási) és a fogadási (deszerializálási) oldalon is ezt tegye. Az adatok olvasására és írására egyaránt vonatkozik.

A következőre érvényes: