DataContractSerializer.MaxItemsInObjectGraph Propriedade
Definição
Obtém o número máximo de itens em um grafo de objeto a serem serializados ou desserializados.Gets the maximum number of items in an object graph to serialize or deserialize.
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.The maximum number of items to serialize or deserialize. O padrão é MaxValue.The default is MaxValue.
Exceções
O número de itens excede o valor máximo.The number of items exceeds the maximum value.
Comentários
Essa propriedade pode ser definida na configuração ou imperativa no código.This property can be set in configuration or imperatively in code. Para defini-lo na configuração, adicione um comportamento personalizado à seção comportamentos e adicione a configuração a seguir.To set it in configuration, add a custom behavior to the behaviors section and add the following setting.
<behaviors> <behavior name="MyServiceBehavior"> <dataContractSerializer maxItemsInObjectGraph="3" /> </behavior></behaviors>
Para definir essa propriedade de forma imperativa no código, localize a descrição da operação do serviço e, em seguida, obtenha o comportamento da operação, por fim, defina a propriedade conforme mostrado no código a seguir.To set this property imperatively in code find the operation description of the service, then get the operation behavior, finally set the property as shown in the following code.
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 chamada de ReadObject método.The MaxItemsInObjectGraph property specifies the maximum number of objects that the serializer serializes or deserializes in a single ReadObject method call. (O método sempre lê um objeto raiz, mas esse objeto pode ter outros objetos em seus membros de dados.(The method always reads one root object, but this object may have other objects in its data members. Esses objetos podem ter outros objetos e assim por diante.) O padrão é MaxValue .Those objects may have other objects, and so on.) The default is MaxValue. Observe que, ao serializar ou desserializar matrizes, cada entrada de matriz conta como um objeto separado.Note that when serializing or deserializing arrays, every array entry counts as a separate object. Além disso, observe que alguns objetos podem ter uma grande representação de memória e, portanto, essa cota sozinha pode não ser suficiente para evitar ataques de negação de serviço.Also, note that some objects may have a large memory representation and so this quota alone may not be sufficient to prevent Denial of Service attacks. Para obter mais informações, consulte considerações de segurança para dados.For more information, see Security Considerations for Data. Se você precisar aumentar essa cota além do valor padrão, é importante fazer isso nos lados enviando (serializando) e recebendo (desserializando).If you need to increase this quota beyond its default value, it is important to do so both on the sending (serializing) and receiving (deserializing) sides. Ele se aplica ao ler e gravar dados.It applies both when reading and writing data.