Esporta (0) Stampa
Espandi tutto

Classe DataContractSerializerOperationBehavior

Aggiornamento: novembre 2007

Rappresenta il comportamento runtime di DataContractSerializer.

Spazio dei nomi:  System.ServiceModel.Description
Assembly:  System.ServiceModel (in System.ServiceModel.dll)

public class DataContractSerializerOperationBehavior : IOperationBehavior, 
	IWsdlExportExtension
public class DataContractSerializerOperationBehavior implements IOperationBehavior, 
	IWsdlExportExtension
public class DataContractSerializerOperationBehavior implements IOperationBehavior, IWsdlExportExtension

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

Per ulteriori informazioni sull'utilizzo di DataContractSerializerOperationBehavior per la sostituzione di IDataContractSurrogate restituito dalla proprietà DataContractSurrogate, vedere Surrogati del contratto dati.

Nell'esempio seguente DataContractSerializerOperationBehavior viene trovato nell'insieme 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();
}


System.Object
  System.ServiceModel.Description.DataContractSerializerOperationBehavior

Qualsiasi membro static (Shared in Visual Basic) pubblico di questo tipo è thread-safe. I membri di istanza non sono garantiti come thread-safe.

Windows Vista, Windows XP SP2, Windows Server 2003

.NET Framework e .NET Compact Framework non supportano tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.

.NET Framework

Supportato in: 3.5, 3.0

Aggiunte alla community

AGGIUNGI
Mostra:
© 2014 Microsoft