Partager via


DataContractSerializer.MaxItemsInObjectGraph Propriété

Définition

Obtient le nombre maximal d'éléments à sérialiser ou désérialiser dans un graphique d'objets.

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

Valeur de propriété

Nombre maximal d'éléments à sérialiser ou à désérialiser. La valeur par défaut est Int32.MaxValue.

Exceptions

Le nombre d'éléments dépasse la valeur maximale.

Remarques

Cette propriété peut être définie dans la configuration ou de façon impérative dans le code. Pour la définir dans la configuration, ajoutez un comportement personnalisé à la section des comportements et ajoutez le paramètre suivant.

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

Pour définir cette propriété de façon impérative dans le code, recherchez la description d'opération du service, obtenez le comportement d'opération, puis définissez la propriété comme indiqué dans le code suivant.

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

La propriété MaxItemsInObjectGraph spécifie le nombre maximal d'objets que le sérialiseur sérialise ou désérialise au cours d'un seul appel de méthode ReadObject. (La méthode lit toujours un objet racine, mais cet objet peut avoir d’autres objets dans ses membres de données. Ces objets peuvent avoir d’autres objets, etc.) La valeur par défaut est MaxValue. Notez qu'en matière de sérialisation ou de désérialisation de tableaux, chaque entrée de tableau compte comme un objet distinct. Notez également que certains objets bénéficient d'une grande représentation en mémoire, de sorte que ce quota peut ne pas suffire pour empêcher des attaques par déni de service. Pour plus d’informations, consultez Considérations sur la sécurité des données. Si vous devez augmenter ce quota au-delà de sa valeur par défaut, il est important de le faire à la fois du côté de l'envoi (sérialisation) et de la réception (désérialisation). Il concerne à la fois la lecture et l'écriture de données.

S’applique à