DataContractSerializer.MaxItemsInObjectGraph Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Obtém o número máximo de itens em um grafo de objeto a serem serializados ou desserializados.
public:
property int MaxItemsInObjectGraph { int get(); };
public int MaxItemsInObjectGraph { get; }
member this.MaxItemsInObjectGraph : int
Public ReadOnly Property MaxItemsInObjectGraph As Integer
Valor da propriedade
O número máximo de itens a serem serializados ou desserializados. O padrão é Int32.MaxValue.
Exceções
O número de itens excede o valor máximo.
Comentários
Essa propriedade pode ser definida na configuração ou imperativamente no código. Para defini-lo na configuração, adicione um comportamento personalizado à seção de comportamentos e adicione a configuração a seguir.
<behaviors> <behavior name="MyServiceBehavior"> <dataContractSerializer maxItemsInObjectGraph="3" /> </behavior></behaviors>
Para definir essa propriedade imperativamente no código, localize a descrição da operação do serviço e, em seguida, obtenha o comportamento da operação e, finalmente, defina a propriedade conforme mostrado no código a seguir.
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 em uma única ReadObject chamada de método. (O método sempre lê um objeto raiz, mas esse objeto pode ter outros objetos em seus membros de dados. Esses objetos podem ter outros objetos e assim por diante.) O padrão é MaxValue. Observe que, ao serializar ou desserializar matrizes, cada entrada de matriz conta como um objeto separado. Além disso, observe que alguns objetos podem ter uma representação de memória grande e, portanto, essa cota por si só pode não ser suficiente para evitar ataques de negação de serviço. Para obter mais informações, consulte Considerações sobre segurança para dados. Se você precisar aumentar essa cota além do valor padrão, é importante fazer isso nos lados de envio (serialização) e recebimento (desserialização). Ele se aplica ao ler e gravar dados.