DataContractSerializerOperationBehavior Clase

Definición

Representa el comportamiento en tiempo de ejecución del 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
Herencia
DataContractSerializerOperationBehavior
Implementaciones

Ejemplos

El ejemplo siguiente busca DataContractSerializerOperationBehavior en la colección de comportamientos para una operación y restablece las propiedades MaxItemsInObjectGraph y 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

Comentarios

DataContractSerializerOperationBehavior habilita el control de las opciones de DataContractSerializer, como las propiedades MaxItemsInObjectGraph y IgnoreExtensionDataObject. Algunas de estas propiedades solo se pueden establecer utilizando el constructor de la clase. En ese caso, DataContractSerializer se puede reemplazar utilizando el método CreateSerializer. Para obtener más información sobre los contratos de datos, consulte Utilización de contratos de datos.

Para obtener más información sobre el uso de DataContractSerializerOperationBehavior para reemplazar el IDataContractSurrogate devuelto por la DataContractSurrogate propiedad , vea Suplentes del contrato de datos.

Constructores

DataContractSerializerOperationBehavior(OperationDescription)

Inicializa una nueva instancia de la clase DataContractSerializerOperationBehavior con la descripción de operación especificada.

DataContractSerializerOperationBehavior(OperationDescription, DataContractFormatAttribute)

Inicializa una nueva instancia de la clase DataContractSerializerOperationBehavior con la descripción de operación especificada y el formato del contrato de datos.

Propiedades

DataContractFormatAttribute

Obtiene la DataContractFormatAttribute asociada con la operación.

DataContractResolver

Obtiene o establece una implementación de la clase DataContractResolver que se usa para asignar tipos de forma dinámica durante los procesos de serialización y deserialización.

DataContractSurrogate

Obtiene o establece un suplente que se va a utilizar durante los procesos de serialización y deserialización.

IgnoreExtensionDataObject

Obtiene o establece un valor que especifica si los datos proporcionados por una extensión de un tipo (y que, por consiguiente, no están en el contrato de datos) se omiten o no.

MaxItemsInObjectGraph

Obtiene o define el número máximo de elementos en el gráfico de objetos que se vaya a serializar o deserializar.

SerializationSurrogateProvider

Obtiene o establece un proveedor suplente que se va a utilizar durante los procesos de serialización y deserialización.

Métodos

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

Crea una instancia de una clase que hereda de XmlObjectSerializer para los procesos de serialización y deserialización.

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

Crea una instancia de una clase que hereda de XmlObjectSerializer para los procesos de serialización y deserialización con la clase XmlDictionaryString que contiene el espacio de nombres.

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Implementaciones de interfaz explícitas

IOperationBehavior.AddBindingParameters(OperationDescription, BindingParameterCollection)

Agrega una colección de parámetros al comportamiento.

IOperationBehavior.ApplyClientBehavior(OperationDescription, ClientOperation)

Asocia un comportamiento de cliente a la operación.

IOperationBehavior.ApplyDispatchBehavior(OperationDescription, DispatchOperation)

Aplica el comportamiento a la operación.

IOperationBehavior.Validate(OperationDescription)

Valida la operación.

IWsdlExportExtension.ExportContract(WsdlExporter, WsdlContractConversionContext)

Exporta la representación del WSDL de la operación.

IWsdlExportExtension.ExportEndpoint(WsdlExporter, WsdlEndpointConversionContext)

Exporta la descripción del punto de conexión como un documento WSDL.

Se aplica a

Consulte también