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 serializer가 단일 ReadObject 메서드 호출에서 직렬화하거나 역직렬화하는 최대 개체 수를 지정합니다. 메서드는 항상 하나의 루트 개체를 읽지만 이 개체의 데이터 멤버에 다른 개체가 있을 수 있습니다. 이러한 개체에는 다른 개체가 있을 수 있습니다.) 기본값은 입니다 MaxValue. 배열을 직렬화하거나 역직렬화할 때 모든 배열 항목은 개별 개체로 계산됩니다. 또한 일부 개체에는 큰 메모리 표현이 있을 수 있으므로 이 할당량만으로는 서비스 거부 공격을 방지하기에 충분하지 않을 수 있습니다. 자세한 내용은 데이터에 대한 보안 고려 사항을 참조하세요. 이 할당량을 기본값 이상으로 늘려야 하는 경우 송신(직렬화) 및 수신(역직렬화) 쪽 모두에서 이 할당량을 늘리는 것이 중요합니다. 데이터를 읽고 쓸 때 모두 적용됩니다.
적용 대상
.NET