DataContractSerializer.MaxItemsInObjectGraph Eigenschap

Definitie

Hiermee haalt u het maximum aantal items in een objectgrafiek op om te serialiseren of deserialiseren.

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

Waarde van eigenschap

Het maximum aantal items dat moet worden geserialiseerd of gedeserialiseerd. De standaardwaarde is Int32.MaxValue.

Uitzonderingen

Het aantal items overschrijdt de maximumwaarde.

Opmerkingen

Deze eigenschap kan worden ingesteld in de configuratie of imperatief in code. Als u deze in de configuratie wilt instellen, voegt u een aangepast gedrag toe aan de sectie Gedrag en voegt u de volgende instelling toe.

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

Als u deze eigenschap imperatief in code wilt instellen, zoekt u de beschrijving van de bewerking van de service, haalt u het werkingsgedrag op en stelt u ten slotte de eigenschap in zoals wordt weergegeven in de volgende code.

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

De MaxItemsInObjectGraph eigenschap geeft het maximum aantal objecten op dat door de serialisatiefunctie in één ReadObject methodeaanroep wordt geserialiseerd of gedeserialiseerd. (De methode leest altijd één hoofdobject, maar dit object heeft mogelijk andere objecten in de gegevensleden. Deze objecten kunnen andere objecten hebben, enzovoort.) De standaardwaarde is MaxValue. Houd er rekening mee dat bij het serialiseren of deserialiseren van matrices elke matrixvermelding als een afzonderlijk object wordt geteld. Houd er ook rekening mee dat sommige objecten mogelijk een grote geheugenweergave hebben en dat dit quotum alleen mogelijk niet voldoende is om Denial of Service-aanvallen te voorkomen. Zie Beveiligingsoverwegingen voor gegevensvoor meer informatie. Als u dit quotum boven de standaardwaarde wilt verhogen, is het belangrijk dat u dit doet aan zowel de verzendende (serialiseren) als de ontvangstzijden (deserialiseren). Dit geldt zowel bij het lezen als schrijven van gegevens.

Van toepassing op