DataContractSerializer.MaxItemsInObjectGraph Egenskap
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Hämtar det maximala antalet objekt i ett objektdiagram som ska serialiseras eller deserialiseras.
public:
property int MaxItemsInObjectGraph { int get(); };
public int MaxItemsInObjectGraph { get; }
member this.MaxItemsInObjectGraph : int
Public ReadOnly Property MaxItemsInObjectGraph As Integer
Egenskapsvärde
Det maximala antalet objekt som ska serialiseras eller deserialiseras. Standardvärdet är Int32.MaxValue.
Undantag
Antalet objekt överskrider det maximala värdet.
Kommentarer
Den här egenskapen kan anges i konfiguration eller imperativt i kod. Om du vill ange den i konfigurationen lägger du till ett anpassat beteende i avsnittet beteenden och lägger till följande inställning.
<behaviors>
<behavior name="MyServiceBehavior">
<dataContractSerializer maxItemsInObjectGraph="3" />
</behavior>
</behaviors>
Om du vill ange den här egenskapen imperativt i kod letar du upp åtgärdsbeskrivningen för tjänsten, hämtar sedan åtgärdsbeteendet och ställer slutligen in egenskapen enligt följande kod.
OperationDescription operation = host.Description.Endpoints[0].Contract.Operations.Find("MyOperationName");
operation.Behaviors.Find<DataContractSerializerOperationBehavior>().MaxItemsInObjectGraph = 3;
Egenskapen MaxItemsInObjectGraph anger det maximala antalet objekt som serialiseraren serialiserar eller deserialiserar i ett enda ReadObject metodanrop. (Metoden läser alltid ett rotobjekt, men det här objektet kan ha andra objekt i sina datamedlemmar. Objekten kan ha andra objekt och så vidare.) Standardvärdet är MaxValue. Observera att när matriser serialiseras eller deserialiseras räknas varje matrispost som ett separat objekt. Observera också att vissa objekt kan ha en stor minnesrepresentation och att enbart den här kvoten kanske inte räcker för att förhindra Denial of Service-attacker. Mer information finns i säkerhetsöverväganden för data. Om du behöver öka den här kvoten utöver standardvärdet är det viktigt att göra det både på sidorna för att skicka (serialisera) och ta emot (deserialisera). Det gäller både vid läsning och skrivning av data.