DataContractSerializer.MaxItemsInObjectGraph Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene il numero massimo di elementi in un oggetto grafico da serializzare o deserializzare.
public:
property int MaxItemsInObjectGraph { int get(); };
public int MaxItemsInObjectGraph { get; }
member this.MaxItemsInObjectGraph : int
Public ReadOnly Property MaxItemsInObjectGraph As Integer
Valore della proprietà
Numero massimo di elementi da serializzare o deserializzare. Il valore predefinito è Int32.MaxValue.
Eccezioni
Il numero di elementi supera il valore massimo.
Commenti
Questa proprietà può essere impostata nella configurazione o in modo imperativo nel codice. Per impostarlo nella configurazione, aggiungere un comportamento personalizzato alla sezione comportamenti e aggiungere l'impostazione seguente.
<behaviors>
<behavior name="MyServiceBehavior">
<dataContractSerializer maxItemsInObjectGraph="3" />
</behavior>
</behaviors>
Per impostare questa proprietà in modo imperativo nel codice, trovare la descrizione dell'operazione del servizio, ottenere il comportamento dell'operazione e infine impostare la proprietà come illustrato nel codice seguente.
OperationDescription operation = host.Description.Endpoints[0].Contract.Operations.Find("MyOperationName");
operation.Behaviors.Find<DataContractSerializerOperationBehavior>().MaxItemsInObjectGraph = 3;
La MaxItemsInObjectGraph proprietà specifica il numero massimo di oggetti serializzati o deserializzati dal serializzatore in una singola ReadObject chiamata al metodo. Il metodo legge sempre un oggetto radice, ma questo oggetto può avere altri oggetti nei relativi membri dati. Tali oggetti possono avere altri oggetti e così via. Il valore predefinito è MaxValue. Si noti che durante la serializzazione o la deserializzazione di matrici, ogni voce di matrice viene conteggiato come oggetto separato. Si noti inoltre che alcuni oggetti possono avere una rappresentazione di memoria di grandi dimensioni e pertanto questa quota da sola potrebbe non essere sufficiente per evitare attacchi Denial of Service. Per altre informazioni, vedere Considerazioni sulla sicurezza per i dati. Se è necessario aumentare questa quota oltre il valore predefinito, è importante farlo sia sul lato invio (serializzazione) che sulla ricezione (deserializzazione). Si applica sia durante la lettura che la scrittura dei dati.