Condividi tramite


DataContractSerializerOperationBehavior Classe

Definizione

Rappresenta il comportamento di runtime dell'oggetto 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 viene DataContractSerializerOperationBehavior trovato nella raccolta di comportamenti per un'operazione e vengono reimpostate le MaxItemsInObjectGraph proprietà e 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

Commenti

DataContractSerializerOperationBehavior abilita il controllo delle DataContractSerializer opzioni, ad esempio le MaxItemsInObjectGraph proprietà e IgnoreExtensionDataObject . Alcune di queste proprietà possono essere impostate solo usando il costruttore della classe . In tal caso, può DataContractSerializer essere sostituito utilizzando il CreateSerializer metodo . Per altre informazioni sui contratti dati, vedere Uso di contratti dati.

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

Costruttori

Nome Descrizione
DataContractSerializerOperationBehavior(OperationDescription, DataContractFormatAttribute)

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

DataContractSerializerOperationBehavior(OperationDescription)

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

Proprietà

Nome Descrizione
DataContractFormatAttribute

Ottiene l'oggetto DataContractFormatAttribute associato all'operazione.

DataContractResolver

Ottiene o imposta un'implementazione dell'oggetto DataContractResolver utilizzato per eseguire il mapping dinamico dei tipi durante i 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 da un'estensione di un tipo (e pertanto non nel contratto dati) vengono ignorati o meno.

MaxItemsInObjectGraph

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

SerializationSurrogateProvider

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

Metodi

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

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

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

Crea un'istanza di una classe che eredita da XmlObjectSerializer per i processi di serializzazione e deserializzazione con un oggetto XmlDictionaryString contenente 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 il Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale del Objectcorrente.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

Nome Descrizione
IOperationBehavior.AddBindingParameters(OperationDescription, BindingParameterCollection)

Aggiunge una raccolta di parametri al comportamento.

IOperationBehavior.ApplyClientBehavior(OperationDescription, ClientOperation)

Collega un comportamento 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