DataContractSerializer.MaxItemsInObjectGraph Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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.