DataContractSerializerOperationBehavior Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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. |