DataContractSerializer.MaxItemsInObjectGraph 屬性
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
取得物件圖形中要序列化或還原序列化的最大項目數。
public:
property int MaxItemsInObjectGraph { int get(); };
public int MaxItemsInObjectGraph { get; }
member this.MaxItemsInObjectGraph : int
Public ReadOnly Property MaxItemsInObjectGraph As Integer
屬性值
要序列化或還原序列化的最大項目數。 預設值為 Int32.MaxValue。
例外狀況
超過最大值的項目數。
備註
這個屬性可在組態中設定,或是在程式碼中以命令方式設定。 若要在組態中設定,請將自訂行為加入到行為區段中,並且加入下列設定。
<behaviors> <behavior name="MyServiceBehavior"> <dataContractSerializer maxItemsInObjectGraph="3" /> </behavior></behaviors>
若要在程式碼中以命令方式設定這個屬性,請找出服務的作業描述,然後取得作業行為,最後如下列程式碼所示設定該屬性。
OperationDescription operation = host.Description.Endpoints[0].Contract.Operations.Find("MyOperationName");operation.Behaviors.Find<DataContractSerializerOperationBehavior>().MaxItemsInObjectGraph = 3;
MaxItemsInObjectGraph 屬性會指定序列化程式在單一 ReadObject 方法呼叫中,序列化或還原序列化的最大物件數。 (方法一律會讀取一個根物件,但此物件在其數據成員中可能有其他物件。這些物件可能有其他物件,依此類 ) 預設值為 MaxValue。 請注意,當序列化或還原序列化陣列時,每個陣列項目都視為個別物件。 另外請注意,有些物件可能有大量記憶體表示,因此只靠這個配額可能仍無法防止阻絕服務攻擊。 如需詳細資訊,請參閱資料的安全性考量。 如果您需要將這個配額增加超過其預設值,您就必須在傳送端 (進行序列化) 和接收端 (進行還原序列化) 同時執行這項操作。 這個做法在讀取和寫入資料時均適用。