次の方法で共有


DataContractSerializerOperationBehavior クラス

定義

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
継承
DataContractSerializerOperationBehavior
実装

操作の動作のコレクションで DataContractSerializerOperationBehavior を検索し、MaxItemsInObjectGraph プロパティおよび 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

注釈

DataContractSerializerOperationBehavior を使用して、DataContractSerializer プロパティや MaxItemsInObjectGraph プロパティなどの IgnoreExtensionDataObject のオプションを制御できます。 これらのプロパティの一部は、クラスのコンストラクターを使用することによってのみ設定できます。 その場合、DataContractSerializer メソッドを使用して CreateSerializer を置き換えることができます。 データ コントラクトの詳細については、「データ コントラクトの使用」を参照してください。

を使用して DataContractSerializerOperationBehavior プロパティによってDataContractSurrogate返される をIDataContractSurrogate置き換える方法の詳細については、「データ コントラクト サロゲート」を参照してください。

コンストラクター

DataContractSerializerOperationBehavior(OperationDescription)

指定した操作の説明を使用して、DataContractSerializerOperationBehavior クラスの新しいインスタンスを初期化します。

DataContractSerializerOperationBehavior(OperationDescription, DataContractFormatAttribute)

指定した操作の説明とデータ コントラクト形式を使用して、DataContractSerializerOperationBehavior クラスの新しいインスタンスを初期化します。

プロパティ

DataContractFormatAttribute

操作に関連付けられた DataContractFormatAttribute を取得します。

DataContractResolver

シリアル化プロセスおよび逆シリアル化プロセスの際に型を動的にマップするために使用される DataContractResolver の実装を取得または設定します。

DataContractSurrogate

シリアル化および逆シリアル化プロセスの際に使用されるサロゲートを取得または設定します。

IgnoreExtensionDataObject

型の拡張により提供される (したがって、データ コントラクトには含まれない) データを無視するかどうかを指定する値を取得または設定します。

MaxItemsInObjectGraph

シリアル化または逆シリアル化するオブジェクト グラフ内の項目の最大数を取得または設定します。

SerializationSurrogateProvider

シリアル化および逆シリアル化プロセスの際に使用されるサロゲート プロバイダーを取得または設定します。

メソッド

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

シリアル化プロセスおよび逆シリアル化プロセスのために、XmlObjectSerializer を継承するクラスのインスタンスを作成します。

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

名前空間を含む XmlObjectSerializer を使用して、シリアル化プロセスおよび逆シリアル化プロセスのために、XmlDictionaryString を継承するクラスのインスタンスを作成します。

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)

明示的なインターフェイスの実装

IOperationBehavior.AddBindingParameters(OperationDescription, BindingParameterCollection)

動作にパラメーターのコレクションを追加します。

IOperationBehavior.ApplyClientBehavior(OperationDescription, ClientOperation)

操作にクライアントの動作を関連付けます。

IOperationBehavior.ApplyDispatchBehavior(OperationDescription, DispatchOperation)

操作に動作を適用します。

IOperationBehavior.Validate(OperationDescription)

操作を検証します。

IWsdlExportExtension.ExportContract(WsdlExporter, WsdlContractConversionContext)

操作の WSDL 表現をエクスポートします。

IWsdlExportExtension.ExportEndpoint(WsdlExporter, WsdlEndpointConversionContext)

エンドポイントの説明を WSDL ドキュメントとしてエクスポートします。

適用対象

こちらもご覧ください