다음을 통해 공유


DataContractSerializerOperationBehavior 클래스

정의

DataContractSerializer의 런타임 동작을 나타냅니다.

public ref class DataContractSerializerOperationBehavior : System::ServiceModel::Description::IOperationBehavior
public ref class DataContractSerializerOperationBehavior : System::ServiceModel::Description::IOperationBehavior, System::ServiceModel::Description::IWsdlExportExtension
public class DataContractSerializerOperationBehavior : System.ServiceModel.Description.IOperationBehavior
public class DataContractSerializerOperationBehavior : System.ServiceModel.Description.IOperationBehavior, System.ServiceModel.Description.IWsdlExportExtension
type DataContractSerializerOperationBehavior = class
    interface IOperationBehavior
type DataContractSerializerOperationBehavior = class
    interface IOperationBehavior
    interface IWsdlExportExtension
Public Class DataContractSerializerOperationBehavior
Implements IOperationBehavior
Public Class DataContractSerializerOperationBehavior
Implements IOperationBehavior, IWsdlExportExtension
상속
DataContractSerializerOperationBehavior
구현

예제

다음 예제에서는 작업의 동작 컬렉션에서 찾아 DataContractSerializerOperationBehaviorIgnoreExtensionDataObject 및 속성을 다시 설정합니다MaxItemsInObjectGraph.

private void DataContractBehavior()
{
    WSHttpBinding b = new WSHttpBinding(SecurityMode.Message);
    Uri baseAddress = new Uri("http://localhost:1066/calculator");
    ServiceHost sh = new ServiceHost(typeof(Calculator), baseAddress);
    sh.AddServiceEndpoint(typeof(ICalculator), b, "");

    // Find the ContractDescription of the operation to find.
    ContractDescription cd = sh.Description.Endpoints[0].Contract;
    OperationDescription myOperationDescription = cd.Operations.Find("Add");

    // Find the serializer behavior.
    DataContractSerializerOperationBehavior serializerBehavior =
        myOperationDescription.Behaviors.
           Find<DataContractSerializerOperationBehavior>();

    // If the serializer is not found, create one and add it.
    if (serializerBehavior == null)
    {
        serializerBehavior = new DataContractSerializerOperationBehavior(myOperationDescription);
        myOperationDescription.Behaviors.Add(serializerBehavior);
    }

    // Change the settings of the behavior.
    serializerBehavior.MaxItemsInObjectGraph = 10000;
    serializerBehavior.IgnoreExtensionDataObject = true;

    sh.Open();
    Console.WriteLine("Listening");
    Console.ReadLine();
}
Private Sub DataContractBehavior() 
    Dim b As New WSHttpBinding(SecurityMode.Message)
    Dim baseAddress As New Uri("http://localhost:1066/calculator")
    Dim sh As New ServiceHost(GetType(Calculator), baseAddress)
    sh.AddServiceEndpoint(GetType(ICalculator), b, "")
    
    ' Find the ContractDescription of the operation to find.
    Dim cd As ContractDescription = sh.Description.Endpoints(0).Contract
    Dim myOperationDescription As OperationDescription = cd.Operations.Find("Add")
    
    ' Find the serializer behavior.
    Dim serializerBehavior As DataContractSerializerOperationBehavior = _
    myOperationDescription.Behaviors.Find _
    (Of DataContractSerializerOperationBehavior)()
    
    ' If the serializer is not found, create one and add it.
    If serializerBehavior Is Nothing Then
        serializerBehavior = New DataContractSerializerOperationBehavior(myOperationDescription)
        myOperationDescription.Behaviors.Add(serializerBehavior)
    End If
    
    ' Change settings of the behavior.
    serializerBehavior.MaxItemsInObjectGraph = 10000
    serializerBehavior.IgnoreExtensionDataObject = True
    
    sh.Open()
    Console.WriteLine("Listening")
    Console.ReadLine()

End Sub

설명

이렇게 DataContractSerializerOperationBehavior 하면 옵션 및 속성과 IgnoreExtensionDataObject 같은 옵션을 제어 DataContractSerializer 할 수 MaxItemsInObjectGraph 있습니다. 이러한 속성 중 일부는 클래스의 생성자를 사용하여 설정할 수 있습니다. 이 경우 메서드를 DataContractSerializer 사용하여 CreateSerializer 바꿀 수 있습니다. 데이터 계약에 대한 자세한 내용은 데이터 계약 사용을 참조하세요.

속성에서 반환 DataContractSurrogateDataContractSerializerOperationBehavior 값을 바꾸는 IDataContractSurrogate 데 사용하는 방법에 대한 자세한 내용은 데이터 계약 서로게이트를 참조하세요.

생성자

DataContractSerializerOperationBehavior(OperationDescription)

지정된 작업 설명을 사용하여 DataContractSerializerOperationBehavior 클래스의 새 인스턴스를 초기화합니다.

DataContractSerializerOperationBehavior(OperationDescription, DataContractFormatAttribute)

지정된 작업 설명 및 데이터 계약 형식을 사용하여 DataContractSerializerOperationBehavior 클래스의 새 인스턴스를 초기화합니다.

속성

DataContractFormatAttribute

작업과 연결된 DataContractFormatAttribute를 가져옵니다.

DataContractResolver

serialization 및 deserialization 프로세스 동안 형식을 동적으로 매핑하는 데 사용되는 DataContractResolver의 구현을 가져오거나 설정합니다.

DataContractSurrogate

serialization 및 deserialization 프로세스 동안 사용될 서로게이트를 가져오거나 설정합니다.

IgnoreExtensionDataObject

형식 확장이 제공하는 데이터 즉, 데이터 계약에 없는 데이터를 무시할지 여부를 지정하는 값을 가져오거나 설정합니다.

MaxItemsInObjectGraph

개체 그래프에서 직렬화하거나 역직렬화할 최대 항목 수를 가져오거나 설정합니다.

SerializationSurrogateProvider

serialization 및 deserialization 프로세스 동안 사용될 서로게이트 공급자를 가져오거나 설정합니다.

메서드

CreateSerializer(Type, String, String, IList<Type>)

serialization 및 deserialization 프로세스에 대해 XmlObjectSerializer에서 상속되는 클래스의 인스턴스를 만듭니다.

CreateSerializer(Type, XmlDictionaryString, XmlDictionaryString, IList<Type>)

네임스페이스를 포함하는 XmlObjectSerializer을 사용하여 serialization 및 deserialization 프로세스를 위해 XmlDictionaryString에서 상속되는 클래스의 인스턴스를 만듭니다.

Equals(Object)

지정된 개체가 현재 개체와 같은지 확인합니다.

(다음에서 상속됨 Object)
GetHashCode()

기본 해시 함수로 작동합니다.

(다음에서 상속됨 Object)
GetType()

현재 인스턴스의 Type을 가져옵니다.

(다음에서 상속됨 Object)
MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.

(다음에서 상속됨 Object)
ToString()

현재 개체를 나타내는 문자열을 반환합니다.

(다음에서 상속됨 Object)

명시적 인터페이스 구현

IOperationBehavior.AddBindingParameters(OperationDescription, BindingParameterCollection)

동작에 매개 변수 컬렉션을 추가합니다.

IOperationBehavior.ApplyClientBehavior(OperationDescription, ClientOperation)

클라이언트 동작을 작업에 연결합니다.

IOperationBehavior.ApplyDispatchBehavior(OperationDescription, DispatchOperation)

동작을 작업에 적용합니다.

IOperationBehavior.Validate(OperationDescription)

작업의 유효성을 검사합니다.

IWsdlExportExtension.ExportContract(WsdlExporter, WsdlContractConversionContext)

작업의 WSDL 표현을 내보냅니다.

IWsdlExportExtension.ExportEndpoint(WsdlExporter, WsdlEndpointConversionContext)

엔드포인트 설명을 WSDL 문서로 내보냅니다.

적용 대상

추가 정보