DataContractSerializer.MaxItemsInObjectGraph Propriedade
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Obtém o número máximo de itens num grafo objeto para serializar ou desserializar.
public:
property int MaxItemsInObjectGraph { int get(); };
public int MaxItemsInObjectGraph { get; }
member this.MaxItemsInObjectGraph : int
Public ReadOnly Property MaxItemsInObjectGraph As Integer
Valor de Propriedade
O número máximo de itens a serializar ou desserializar. O padrão é Int32.MaxValue.
Exceções
O número de itens excede o valor máximo.
Observações
Esta propriedade pode ser definida em configuração ou imperativamente em código. Para o definir em configuração, adicione um comportamento personalizado à secção de comportamentos e adicione a seguinte configuração.
<behaviors>
<behavior name="MyServiceBehavior">
<dataContractSerializer maxItemsInObjectGraph="3" />
</behavior>
</behaviors>
Para definir esta propriedade imperativamente no código, encontre a descrição da operação do serviço, depois obtenha o comportamento operacional e, finalmente, defina a propriedade conforme mostrado no código seguinte.
OperationDescription operation = host.Description.Endpoints[0].Contract.Operations.Find("MyOperationName");
operation.Behaviors.Find<DataContractSerializerOperationBehavior>().MaxItemsInObjectGraph = 3;
A MaxItemsInObjectGraph propriedade especifica o número máximo de objetos que o serializador serializa ou desserializa numa única ReadObject chamada de método. (O método lê sempre um objeto raiz, mas este objeto pode ter outros objetos nos seus membros de dados. Esses objetos podem ter outros objetos, e assim sucessivamente.) O padrão é MaxValue. Observe que, ao serializar ou desserializar matrizes, cada entrada de matriz conta como um objeto separado. Note-se também que alguns objetos podem ter uma grande representação de memória e, por isso, esta quota sozinha pode não ser suficiente para prevenir ataques de Negação de Serviço. Para obter mais informações, consulte Considerações de segurança para dados. Se precisar de aumentar esta quota para além do seu valor padrão, é importante fazê-lo tanto do lado emissor (serialização) como do receptor (desserialização). Aplica-se tanto na leitura como na escrita de dados.