DataContractSerializerOperationBehavior Třída

Definice

Představuje chování za běhu objektu 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
Dědičnost
DataContractSerializerOperationBehavior
Implementuje

Příklady

Následující příklad najde DataContractSerializerOperationBehavior v kolekci chování pro operaci a resetuje MaxItemsInObjectGraph vlastnosti a 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

Poznámky

Umožňuje DataContractSerializerOperationBehavior řízení DataContractSerializer možností, jako MaxItemsInObjectGraph jsou vlastnosti a IgnoreExtensionDataObject . Některé z těchto vlastností lze nastavit pouze pomocí konstruktoru třídy . V takovém případě DataContractSerializer je možné nahradit metodou CreateSerializer . Další informace o kontraktech dat najdete v tématu Použití kontraktů dat.

Další informace o použití DataContractSerializerOperationBehavior k nahrazení vrácenou IDataContractSurrogate vlastností najdete v DataContractSurrogate tématu Náhradní smlouvy dat.

Konstruktory

DataContractSerializerOperationBehavior(OperationDescription)

Inicializuje novou instanci DataContractSerializerOperationBehavior třídy se zadaným popisem operace.

DataContractSerializerOperationBehavior(OperationDescription, DataContractFormatAttribute)

Inicializuje novou instanci DataContractSerializerOperationBehavior třídy se zadaným popisem operace a formátem kontraktu dat.

Vlastnosti

DataContractFormatAttribute

DataContractFormatAttribute Získá přidružený k operaci.

DataContractResolver

Získá nebo nastaví implementaci DataContractResolver , která se používá k dynamickému mapování typů během procesů serializace a deserializace.

DataContractSurrogate

Získá nebo nastaví náhradní použít během procesu serializace a deserializace.

IgnoreExtensionDataObject

Získá nebo nastaví hodnotu, která určuje, zda data poskytnutá rozšířením typu (a proto není v kontraktu dat) ignorována nebo ne.

MaxItemsInObjectGraph

Získá nebo nastaví maximální počet položek v grafu objektu serializovat nebo deserializovat.

SerializationSurrogateProvider

Získá nebo nastaví náhradní zprostředkovatele použít během serializace a deserializace procesů.

Metody

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

Vytvoří instanci třídy, která dědí z XmlObjectSerializer pro procesy serializace a deserializace.

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

Vytvoří instanci třídy, která dědí z XmlObjectSerializer procesu serializace a deserializace s objektem XmlDictionaryString , který obsahuje obor názvů.

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

(Zděděno od Object)
GetHashCode()

Slouží jako výchozí hashovací funkce.

(Zděděno od Object)
GetType()

Type Získá z aktuální instance.

(Zděděno od Object)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Objectsouboru .

(Zděděno od Object)
ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Explicitní implementace rozhraní

IOperationBehavior.AddBindingParameters(OperationDescription, BindingParameterCollection)

Přidá kolekci parametrů k chování.

IOperationBehavior.ApplyClientBehavior(OperationDescription, ClientOperation)

Připojí chování klienta k operaci.

IOperationBehavior.ApplyDispatchBehavior(OperationDescription, DispatchOperation)

Použije chování na operaci.

IOperationBehavior.Validate(OperationDescription)

Ověří operaci.

IWsdlExportExtension.ExportContract(WsdlExporter, WsdlContractConversionContext)

Exportuje reprezentaci WSDL operace.

IWsdlExportExtension.ExportEndpoint(WsdlExporter, WsdlEndpointConversionContext)

Exportuje popis koncového bodu jako dokument WSDL.

Platí pro

Viz také