Partager via


DataContractSerializer.MaxItemsInObjectGraph Propriété

Définition

Obtient le nombre maximal d’éléments d’un graphique d’objet à sérialiser ou désérialiser.

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 impérativement dans le code. Pour la définir dans la configuration, ajoutez un comportement personnalisé à la section comportements et ajoutez le paramètre suivant.

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

Pour définir cette propriété impérativement dans le code, recherchez la description de l’opération du service, puis obtenez le comportement de l’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 MaxItemsInObjectGraph propriété spécifie le nombre maximal d’objets que le sérialiseur sérialise ou désérialise dans un appel de méthode unique 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, et ainsi de suite.) La valeur par défaut est MaxValue. Notez que lors de la sérialisation ou de la désérialisation des tableaux, chaque entrée de tableau compte comme objet distinct. Notez également que certains objets peuvent avoir une représentation en mémoire importante et que ce quota seul peut ne pas suffire pour empêcher les attaques par déni de service. Pour plus d’informations, consultez Considérations relatives à la sécurité pour les données. Si vous devez augmenter ce quota au-delà de sa valeur par défaut, il est important de le faire à la fois sur les côtés d’envoi (sérialisation) et de réception (désérialisation). Il s’applique à la fois lors de la lecture et de l’écriture de données.

S’applique à