DataContractSerializerOperationBehavior Klass

Definition

Representerar körningsbeteendet för 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
Arv
DataContractSerializerOperationBehavior
Implementeringar

Exempel

I följande exempel hittar du DataContractSerializerOperationBehavior i samlingen med beteenden för en åtgärd och återställer MaxItemsInObjectGraph egenskaperna och 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

Kommentarer

DataContractSerializerOperationBehavior Aktiverar kontrollen över DataContractSerializer alternativ, till exempel MaxItemsInObjectGraph egenskaperna ochIgnoreExtensionDataObject. Vissa av dessa egenskaper kan bara anges med hjälp av konstruktorn för klassen. I så fall DataContractSerializer kan du ersätta med hjälp av CreateSerializer metoden . Mer information om datakontrakt finns i Använda datakontrakt.

Mer information om hur du använder DataContractSerializerOperationBehavior för att ersätta den IDataContractSurrogate som returneras av DataContractSurrogate egenskapen finns i Data Contract Surrogates(Data contract surrogates).

Konstruktorer

Name Description
DataContractSerializerOperationBehavior(OperationDescription, DataContractFormatAttribute)

Initierar en ny instans av DataContractSerializerOperationBehavior klassen med den angivna åtgärdsbeskrivningen och datakontraktsformatet.

DataContractSerializerOperationBehavior(OperationDescription)

Initierar en ny instans av DataContractSerializerOperationBehavior klassen med den angivna åtgärdsbeskrivningen.

Egenskaper

Name Description
DataContractFormatAttribute

Hämtar den DataContractFormatAttribute associerade åtgärden.

DataContractResolver

Hämtar eller anger en implementering av DataContractResolver som används för att dynamiskt mappa typer under serialiserings- och deserialiseringsprocesser.

DataContractSurrogate

Hämtar eller ställer in en surrogat som ska användas under serialiserings- och deserialiseringsprocesserna.

IgnoreExtensionDataObject

Hämtar eller anger ett värde som anger om data som tillhandahålls av ett tillägg av en typ (och därför inte i datakontraktet) ignoreras eller inte.

MaxItemsInObjectGraph

Hämtar eller anger det maximala antalet objekt i objektdiagrammet som ska serialiseras eller deserialiseras.

SerializationSurrogateProvider

Hämtar eller anger en surrogatprovider som ska användas under serialiserings- och deserialiseringsprocesserna.

Metoder

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

Skapar en instans av en klass som ärver från XmlObjectSerializer för serialiserings- och deserialiseringsprocesser.

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

Skapar en instans av en klass som ärver från XmlObjectSerializer för serialiserings- och deserialiseringsprocesser med en XmlDictionaryString som innehåller namnområdet.

Equals(Object)

Avgör om det angivna objektet är lika med det aktuella objektet.

(Ärvd från Object)
GetHashCode()

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)

Explicita gränssnittsimplementeringar

Name Description
IOperationBehavior.AddBindingParameters(OperationDescription, BindingParameterCollection)

Lägger till en samling parametrar i beteendet.

IOperationBehavior.ApplyClientBehavior(OperationDescription, ClientOperation)

Kopplar ett klientbeteende till åtgärden.

IOperationBehavior.ApplyDispatchBehavior(OperationDescription, DispatchOperation)

Tillämpar beteendet på åtgärden.

IOperationBehavior.Validate(OperationDescription)

Verifierar åtgärden.

IWsdlExportExtension.ExportContract(WsdlExporter, WsdlContractConversionContext)

Exporterar WSDL-representationen av åtgärden.

IWsdlExportExtension.ExportEndpoint(WsdlExporter, WsdlEndpointConversionContext)

Exporterar slutpunktsbeskrivningen som ett WSDL-dokument.

Gäller för

Se även