DataContractSerializer.MaxItemsInObjectGraph DataContractSerializer.MaxItemsInObjectGraph DataContractSerializer.MaxItemsInObjectGraph DataContractSerializer.MaxItemsInObjectGraph Property

Definition

Ruft die maximale Anzahl von Elementen in einem Objektdiagramm ab, die serialisiert oder deserialisiert werden.Gets the maximum number of items in an object graph to serialize or deserialize.

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

Eigenschaftswert

Die maximale Anzahl von Elementen, die serialisiert oder deserialisiert werden sollen.The maximum number of items to serialize or deserialize. Der Standardwert ist MaxValue.The default is MaxValue.

Ausnahmen

Die Anzahl der Elemente ist größer als der Maximalwert.The number of items exceeds the maximum value.

Hinweise

Diese Eigenschaft kann in der Konfiguration bzw. imperativ im Code festgelegt werden.This property can be set in configuration or imperatively in code. Wenn sie in der Konfiguration festgelegt werden soll, fügen Sie dem Abschnitt mit Verhaltensweisen ein benutzerdefiniertes Verhalten hinzu, und fügen Sie folgende Einstellung hinzu:To set it in configuration, add a custom behavior to the behaviors section and add the following setting.

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

Wenn Sie diese Eigenschaft imperativ im Code festlegen möchten, machen Sie die Vorgangsbeschreibung des Diensts ausfindig, rufen Sie dann das Vorgangsverhalten ab, und legen Sie dann die Eigenschaft wie im folgenden Code dargestellt fest.To set this property imperatively in code find the operation description of the service, then get the operation behavior, finally set the property as shown in the following code.

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

Die MaxItemsInObjectGraph-Eigenschaft gibt die maximale Anzahl von Objekten an, die das Serialisierungsprogramm in einem einzelnen ReadObject-Methodenaufruf serialisieren bzw. deserialisieren kann.The MaxItemsInObjectGraph property specifies the maximum number of objects that the serializer serializes or deserializes in a single ReadObject method call. (Die Methode liest immer ein Stammobjekt, aber dieses Objekt kann in seinen Datenmembern andere Objekte enthalten.(The method always reads one root object, but this object may have other objects in its data members. Diese Objekte können wiederum andere Objekte enthalten usw.) Die Standardeinstellung ist MaxValue.Those objects may have other objects, and so on.) The default is MaxValue. Beachten Sie, dass beim Serialisieren und Deserialisieren von Arrays jeder Arrayeintrag als separates Objekt betrachtet wird.Note that when serializing or deserializing arrays, every array entry counts as a separate object. Beachten Sie zudem, dass einige Objekte über eine große Speicherdarstellung verfügen, und dass dieses Kontingent allein deswegen möglicherweise nicht ausreicht, um einen Denial-of-Service-Angriff zu verhindern.Also, note that some objects may have a large memory representation and so this quota alone may not be sufficient to prevent Denial of Service attacks. Weitere Informationen finden Sie unter Sicherheitsüberlegungen zu Daten.For more information, see Security Considerations for Data. Wenn Sie das Kontingent über die Standardeinstellung hinaus erhöhen möchten, müssen Sie dies sowohl auf der sendenden (serialisierenden) als auch der empfangenden (deserialisierenden) Seite tun.If you need to increase this quota beyond its default value, it is important to do so both on the sending (serializing) and receiving (deserializing) sides. Das Kontingent wird sowohl beim Lesen als auch beim Schreiben von Daten angewendet.It applies both when reading and writing data.

Gilt für: