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
Реализации

Примеры

Следующий пример находит DataContractSerializerOperationBehavior в коллекции поведения для операции и сбрасывает MaxItemsInObjectGraph и IgnoreExtensionDataObject свойства.

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 позволяет управлять параметрами DataContractSerializer, такими как свойства MaxItemsInObjectGraph и IgnoreExtensionDataObject. Некоторые из этих свойств можно задать только с помощью конструктора класса. В этом случае DataContractSerializer можно заменить с помощью метода CreateSerializer. Дополнительные сведения о контрактах данных см. в разделе Использование контрактов данных.

Дополнительные сведения об использовании DataContractSerializerOperationBehavior для замены IDataContractSurrogate, возвращенной свойством DataContractSurrogate, см. в суррогатныхконтракта данных.

Конструкторы

DataContractSerializerOperationBehavior(OperationDescription, DataContractFormatAttribute)

Инициализирует новый экземпляр класса DataContractSerializerOperationBehavior с указанным описанием операции и форматом контракта данных.

DataContractSerializerOperationBehavior(OperationDescription)

Инициализирует новый экземпляр класса DataContractSerializerOperationBehavior с указанным описанием операции.

Свойства

DataContractFormatAttribute

Возвращает DataContractFormatAttribute, связанную с операцией.

DataContractResolver

Возвращает или задает реализацию DataContractResolver, которая используется для динамической сопоставления типов во время сериализации и десериализации процессов.

DataContractSurrogate

Возвращает или задает суррогат, используемый во время сериализации и десериализации процессов.

IgnoreExtensionDataObject

Возвращает или задает значение, указывающее, игнорируются ли данные, предоставляемые расширением типа (и поэтому не в контракте данных).

MaxItemsInObjectGraph

Возвращает или задает максимальное количество элементов в графе объектов для сериализации или десериализации.

SerializationSurrogateProvider

Возвращает или задает суррогатный поставщик, используемый во время процессов сериализации и десериализации.

Методы

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

Создает экземпляр класса, наследуемого от XmlObjectSerializer для процессов сериализации и десериализации.

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

Создает экземпляр класса, наследуемого от XmlObjectSerializer для процессов сериализации и десериализации с 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.

Применяется к

См. также раздел