Condividi tramite


DataContractSerializerOperationBehavior Classe

Definizione

Rappresenta il comportamento runtime di 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
Ereditarietà
DataContractSerializerOperationBehavior
Implementazioni

Esempio

Nell'esempio seguente, l'oggetto DataContractSerializerOperationBehavior viene individuato nella raccolta dei comportamenti di un'operazione e le proprietà MaxItemsInObjectGraph e IgnoreExtensionDataObject vengono reimpostate.

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

Commenti

DataContractSerializerOperationBehavior attiva il controllo di opzioni DataContractSerializer, quali le proprietà MaxItemsInObjectGraph e IgnoreExtensionDataObject. Alcune di queste proprietà possono essere impostate soltanto utilizzando il costruttore della classe. In questo caso, è possibile sostituire DataContractSerializer utilizzando il metodo CreateSerializer. Per altre informazioni sui contratti dati, vedere Uso dei contratti dati.

Per altre informazioni sull'uso DataContractSerializerOperationBehavior di per sostituire l'oggetto IDataContractSurrogate restituito dalla DataContractSurrogate proprietà , vedere Surrogati del contratto dati.

Costruttori

DataContractSerializerOperationBehavior(OperationDescription)

Inizializza una nuova istanza della classe DataContractSerializerOperationBehavior con la descrizione dell'operazione specificata.

DataContractSerializerOperationBehavior(OperationDescription, DataContractFormatAttribute)

Inizializza una nuova istanza della classe DataContractSerializerOperationBehavior con la descrizione dell'operazione e il formato di contratto dati specificati.

Proprietà

DataContractFormatAttribute

Ottiene la classe DataContractFormatAttribute associata all'operazione.

DataContractResolver

Ottiene o imposta un'implementazione di DataContractResolver utilizzata per eseguire dinamicamente il mapping dei tipi durante il processi di serializzazione e deserializzazione.

DataContractSurrogate

Ottiene o imposta un surrogato da utilizzare durante i processi di serializzazione e deserializzazione.

IgnoreExtensionDataObject

Ottiene o imposta un valore che specifica se i dati forniti dall'estensione di un tipo (e pertanto non presenti nel contratto dati) debbano essere ignorati o meno.

MaxItemsInObjectGraph

Ottiene o imposta il numero massimo di elementi nell'oggetto grafico da serializzare o deserializzare.

SerializationSurrogateProvider

Ottiene o imposta un provider surrogato da usare durante i processi di serializzazione e deserializzazione.

Metodi

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

Crea un'istanza di una classe che eredita da XmlObjectSerializer per processi di serializzazione e deserializzazione.

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

Crea un'istanza di una classe che eredita da XmlObjectSerializer per processi di serializzazione e deserializzazione con un oggetto XmlDictionaryString che contiene lo spazio dei nomi.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

IOperationBehavior.AddBindingParameters(OperationDescription, BindingParameterCollection)

Aggiunge una raccolta di parametri al comportamento.

IOperationBehavior.ApplyClientBehavior(OperationDescription, ClientOperation)

Collega il comportamento di un client all'operazione.

IOperationBehavior.ApplyDispatchBehavior(OperationDescription, DispatchOperation)

Applica il comportamento all'operazione.

IOperationBehavior.Validate(OperationDescription)

Convalida l'operazione.

IWsdlExportExtension.ExportContract(WsdlExporter, WsdlContractConversionContext)

Esporta la rappresentazione WSDL dell'operazione.

IWsdlExportExtension.ExportEndpoint(WsdlExporter, WsdlEndpointConversionContext)

Esporta la descrizione dell'endpoint come documento WSDL.

Si applica a

Vedi anche