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 à 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.