DataContractSerializerOperationBehavior 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
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
- 구현
예제
다음 예제에서는 작업의 동작 컬렉션에서 찾아 DataContractSerializerOperationBehavior 서 IgnoreExtensionDataObject 및 속성을 다시 설정합니다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 바꿀 수 있습니다. 데이터 계약에 대한 자세한 내용은 데이터 계약 사용을 참조하세요.
속성에서 반환 DataContractSurrogate 된 DataContractSerializerOperationBehavior 값을 바꾸는 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 문서로 내보냅니다. |