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 çıkarabilmek 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
Seri hale getirilmeye veya seri durumdan çıkarmaya yönelik en fazla öğe sayısı. Varsayılan değer Int32.MaxValue'dır.
Özel durumlar
Öğe sayısı en yüksek 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>
Kodda bu özelliği kesin olarak ayarlamak için hizmetin işlem açıklamasını bulun, ardından işlem davranışını alın, son olarak aşağıdaki kodda gösterildiği gibi özelliği 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 serileştirirken 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. Verilerde Güvenlikle İlgili Dikkat Edilmesi Gerekenler. Bu kotayı varsayılan değerinin ötesine 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.