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)

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

DataContractSerializerOperationBehavior(OperationDescription, DataContractFormatAttribute)

Инициализирует новый экземпляр класса 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.

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

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