DataContractSerializer.MaxItemsInObjectGraph Özellik
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Seri hale getirmek veya seri durumdan çıkarmak için nesne grafiğindeki en fazla öğe sayısını alır.
public:
property int MaxItemsInObjectGraph { int get(); };
public int MaxItemsInObjectGraph { get; }
member this.MaxItemsInObjectGraph : int
Public ReadOnly Property MaxItemsInObjectGraph As Integer
Özellik Değeri
Serileştirmek veya seri durumdan çıkarmak için en fazla öğe sayısı. Varsayılan değer Int32.MaxValue'dir.
Özel durumlar
Öğe sayısı maksimum değeri aşıyor.
Açıklamalar
Bu özellik yapılandırmada veya kodda kesin olarak ayarlanabilir. Yapılandırmada ayarlamak için davranışlar bölümüne özel bir davranış ekleyin ve aşağıdaki ayarı ekleyin.
<behaviors>
<behavior name="MyServiceBehavior">
<dataContractSerializer maxItemsInObjectGraph="3" />
</behavior>
</behaviors>
Bu özelliği kodda kesin olarak ayarlamak için hizmetin işlem açıklamasını bulun, ardından işlem davranışını alın ve son olarak aşağıdaki kodda gösterildiği gibi özelliğini ayarlayın.
OperationDescription operation = host.Description.Endpoints[0].Contract.Operations.Find("MyOperationName");
operation.Behaviors.Find<DataContractSerializerOperationBehavior>().MaxItemsInObjectGraph = 3;
özelliği, MaxItemsInObjectGraph seri hale getiricinin tek ReadObject bir yöntem çağrısında seri hale getirerek veya seri durumdan çıkararak en fazla nesne sayısını belirtir. (yöntemi her zaman bir kök nesneyi okur, ancak bu nesnenin veri üyelerinde başka nesneler olabilir. Bu nesneler başka nesnelere sahip olabilir ve bu şekilde devam edebilir.) Varsayılan değerdir MaxValue. Dizileri seri hale getirirken veya seri durumdan çıkarırken her dizi girişinin ayrı bir nesne olarak sayıldığını unutmayın. Ayrıca, bazı nesnelerin büyük bir bellek gösterimine sahip olabileceğini ve bu nedenle yalnızca bu kotanın Hizmet Reddi saldırılarını önlemek için yeterli olmayabileceğini unutmayın. Daha fazla bilgi için bkz. Veriler için GüvenlikLe İlgili Önemli Noktalar. Bu kotayı varsayılan değerinin ötesinde artırmanız gerekiyorsa, bunu hem gönderme (serileştirme) hem de alma (seri durumdan çıkarma) taraflarında yapmanız önemlidir. Hem veri okurken hem de yazarken geçerlidir.