Binding Binding Binding Binding Class

定義

クライアントとサービスの間の通信に使用するプロトコル、トランスポート、およびメッセージ エンコーダーを指定するバインド要素を格納します。Contains the binding elements that specify the protocols, transports, and message encoders used for communication between clients and services.

public ref class Binding abstract : System::ServiceModel::IDefaultCommunicationTimeouts
public abstract class Binding : System.ServiceModel.IDefaultCommunicationTimeouts
type Binding = class
    interface IDefaultCommunicationTimeouts
Public MustInherit Class Binding
Implements IDefaultCommunicationTimeouts
継承
BindingBindingBindingBinding
派生
実装

BasicHttpBinding binding = new BasicHttpBinding();

binding.Name = "binding1";

Uri baseAddress = new Uri("http://localhost:8000/servicemodelsamples/service");
Uri address = new Uri("http://localhost:8000/servicemodelsamples/service/calc");

// Create a ServiceHost for the CalculatorService type and provide the base address.
using (ServiceHost serviceHost = new ServiceHost(typeof(CalculatorService), baseAddress))
{
    serviceHost.AddServiceEndpoint(typeof(ICalculator), binding, address);

    // Open the ServiceHostBase to create listeners and start listening for messages.
    serviceHost.Open();

    // The service can now be accessed.
    Console.WriteLine("The service is ready.");
    Console.WriteLine("Press <ENTER> to terminate service.");
    Console.WriteLine();
    Console.ReadLine();
    // Close the ServiceHostBase to shutdown the service.
    serviceHost.Close();
}

注釈

バインド要素のコレクションを表します。各バインド要素は他のエンドポイントとの通信方法を記述しており、チャネル ファクトリ (クライアント側) およびチャネル リスナー (サービス側) に、整合性を保って組み込まれています。Represents a collection of binding elements, each of which describes an aspect of how an endpoint communicates with other endpoints and that are built, consistently, into a channel factory on the client and into a channel listener on the service. バインドは、プロトコル チャネル、トランスポート チャネル、およびメッセージ エンコーダーに対応するバインド要素のコレクションを格納しています。A binding contains a collection of binding elements that correspond to protocol channels, transport channels, and message encoders. プロトコル チャネルに対しては任意の数のバインド要素が存在できますが、個々のトランスポートとメッセージ エンコーダーに対して存在できるバインド要素はただ 1 つだけです。There can be any number of binding elements for protocol channels but one and only one binding element for each the transport and message encoder. バインド内には、一般的に 6 層のバインド要素があります。There are commonly six layers of binding elements in a binding. スタックの最下位のトランスポート バインド要素とエンコーディング バインド要素だけが必須です。Only the transport and encoding binding elements at the bottom of the stack are required. エンコーディングが指定されていない場合、エンコーディングは各バインディングに必要であるために、Windows Communication Foundation (WCF) は既定エンコーディングを追加します。Because an encoding is required for each binding, if an encoding is not specified, Windows Communication Foundation (WCF) adds a default encoding for you. 既定では、HTTP および HTTPS トランスポートに対してはテキスト/XML、その他のトランスポートに対してはバイナリです。The default is Text/XML for the HTTP and HTTPS transports, and Binary for other transports.

各層のオプションの概要を次の表に示します。The following table summarizes the options for each layer.

レイヤーLayer オプションOptions 必須Required
トランザクション フローTransaction Flow TransactionFlowBindingElement いいえNo
信頼性Reliability ReliableSessionBindingElement いいえNo
セキュリティSecurity 同期、非同期、トランスポート レベルSymmetric, Asymmetric, Transport-Level いいえNo
形状の変更Shape Change CompositeDuplexBindingElement いいえNo
トランスポートのアップグレードTransport Upgrades SSL ストリーム、Windows ストリーム、ピア リゾルバーSSL stream, Windows stream, Peer Resolver いいえNo
エンコードEncoding テキスト、バイナリ、MTOM、カスタムText, Binary, MTOM, Custom はいYes
TransportTransport TCP、名前付きパイプ、HTTP、HTTPS、MSMQ、およびカスタムTCP, Named Pipes, HTTP, HTTPS, MSMQ, Custom はいYes

各バインド要素は、クライアントでのチャネル ファクトリの構築、およびサービスでのチャネル リスナーの構築に対する仕様を提供します。Each binding element provides the specification for building a channel factory on the client and a channel listener on the service. たとえば、チャネル ファクトリ スタックを作成するときは、バインド内の各バインド要素に対し、スタック内に 1 つのチャネル ファクトリが存在します。When the channel factory stack is constructed, for example, there is one channel factory in the stack for each binding element in the binding. 同様のマッピングが、サービス上のスタックでのチャネル リスナーにも適用されます。The same sort of mapping applies to the channel listeners in the stack on the service. これらのエンドポイントの間でチャネル ベースの接続を確立するには、クライアントとサービスの間の整合性が不可欠です。Consistency on the client and service is critical for establishing the channel-based connection between these endpoints. その結果、各ファクトリとリスナーは、両者を接続するチャネル スタック内の対応するチャネルの送信と受け入れを処理し、これらのチャネルは通信に使用するメッセージを送受信できます。Each factory and listener, in turn, processes the sending and accepting of the corresponding channels in the channel stack that connects them, and these channels can then send and receive the messages used to communicate.

Binding の各インスタンスには、Name および Namespace があり、合わせてサービスのメタデータ内でそのインスタンスを一意に識別します。Each instance of a Binding has a Name and Namespace that together uniquely identify it in the metadata of the service. 名前または名前空間が指定されていない場合、WCF は、既定値を追加します。If no name or namespace is specified, WCF adds a default values for you. 既定の名前はnull、既定の名前空間はhttp://tempuri.org/します。The default name is null and the default namespace is http://tempuri.org/. バインディングに対するこのユーザー名は、Scheme プロパティによって指定されるプロトコル名とは異なります。This user name for the binding is distinct from the specification of the protocol name, which is specified by the Scheme property. たとえば、HTTP バインドをさらに追加する場合は、それらに自由に名前を付けて、すべてのスキームを "http" に設定できます。If you want to add more HTTP bindings, for example, you can name them whatever you want and set all of their schemes to "http". Scheme に基づくアプリケーションまたはマシンの固有のディスパッチはありません。There is no inherent application or machine dispatch based on the Scheme. したがって、既知のプロトコルに対して追加のハンドラーを登録できないという、よくある問題は避けられます。So you avoid the common problem of being unable to register additional handlers for well-known protocols. また、複数のバージョンのバインドの並行使用も、各バージョンに異なる名前を付けることで、簡単に処理できます。You can also easily work with multiple versions of a binding side-by-side by giving each version a different name.

Binding クラスは、長時間リソースを停滞させることによるサービス拒否 (DOS) 攻撃を軽減するために、IDefaultCommunicationTimeouts インターフェイスを実装します。The Binding class implements the IDefaultCommunicationTimeouts interface to mitigate Denial of Service (DOS) attacks that rely on tying up resources for extended intervals of time. この実装により、接続の確立と終了や、メッセージの送受信に関連付けられている読み取りおよび書き込み操作についての通信タイムアウト値が指定されます。The implementation specifies the communication timeouts values for opening and closing connections and for the reading and writing operations associated with receiving and sending messages. これらのタイムアウト値とその既定の操作を取得および設定するプロパティを、次の表に示します。The properties used to get and set these timeouts and their default values operations are summarized in the following table.

Timeout プロパティTimeout Property 既定値Default Value
OpenTimeout 1 分1 minute
CloseTimeout 1 分1 minute
SendTimeout 1 分1 minute
ReceiveTimeout 10 分10 minutes

Binding を継承してバインドを作成するときは、CreateBindingElements をオーバーライドする必要があります。When you create a binding by inheriting from Binding, you must override CreateBindingElements.

さらに、独自のバインド要素を定義し、前の表で定義されている層の間のどこにでも挿入できます。In addition, you can define your own binding elements and insert them between any of the defined layers in the preceding table. 詳細については、CustomBinding クラスを参照してください。For more information, see the CustomBinding class.

コンストラクター

Binding() Binding() Binding() Binding()

既定の名前と名前空間を使用して、Binding クラスの新しいインスタンスを初期化します。Initializes a new instance of the Binding class with a default name and namespace.

Binding(String, String) Binding(String, String) Binding(String, String) Binding(String, String)

サービスの指定したバインドを使用して、Binding クラスの新しいインスタンスを初期化します。Initializes a new instance of the Binding class from a specified binding of the service.

プロパティ

CloseTimeout CloseTimeout CloseTimeout CloseTimeout

接続の終了を待機する時間間隔を取得および設定します。これを超えるとトランスポートで例外が発生します。Gets or sets the interval of time provided for a connection to close before the transport raises an exception.

MessageVersion MessageVersion MessageVersion MessageVersion

バインドで構成されるクライアントとサービスが使用するメッセージ バージョンを取得します。Gets the message version used by clients and services configured with the binding.

Name Name Name Name

バインドの名前を取得または設定します。Gets or sets the name of the binding.

Namespace Namespace Namespace Namespace

バインドの XML 名前空間を取得または設定します。Gets or sets the XML namespace of the binding.

OpenTimeout OpenTimeout OpenTimeout OpenTimeout

接続の確立を待機する時間間隔を取得および設定します。これを超えるとトランスポートで例外が発生します。Gets or sets the interval of time provided for a connection to open before the transport raises an exception.

ReceiveTimeout ReceiveTimeout ReceiveTimeout ReceiveTimeout

アプリケーション メッセージが受信されない間に、接続が非アクティブになってから切断されるまでの時間を取得または設定します。Gets or sets the interval of time that a connection can remain inactive, during which no application messages are received, before it is dropped.

Scheme Scheme Scheme Scheme

派生クラスとして実装された場合、バインドによって作成されるチャネルおよびリスナー ファクトリが使用するトランスポートを指定する URI スキームを設定します。When implemented in a derived class, sets the URI scheme that specifies the transport used by the channel and listener factories that are built by the bindings.

SendTimeout SendTimeout SendTimeout SendTimeout

書き込み操作の完了を待機する時間間隔を取得および設定します。これを超えるとトランスポートで例外が発生します。Gets or sets the interval of time provided for a write operation to complete before the transport raises an exception.

メソッド

BuildChannelFactory<TChannel>(BindingParameterCollection) BuildChannelFactory<TChannel>(BindingParameterCollection) BuildChannelFactory<TChannel>(BindingParameterCollection) BuildChannelFactory<TChannel>(BindingParameterCollection)

指定した種類のチャネルを作成し、バインド パラメーターのコレクションで指定されている機能を満たすチャネル ファクトリ スタックを、クライアント上に構築します。Builds the channel factory stack on the client that creates a specified type of channel and that satisfies the features specified by a collection of binding parameters.

BuildChannelFactory<TChannel>(Object[]) BuildChannelFactory<TChannel>(Object[]) BuildChannelFactory<TChannel>(Object[]) BuildChannelFactory<TChannel>(Object[])

指定した種類のチャネルを作成し、オブジェクト配列で指定されている機能を満たすチャネル ファクトリ スタックを、クライアント上に構築します。Builds the channel factory stack on the client that creates a specified type of channel and that satisfies the features specified by an object array.

BuildChannelListener<TChannel>(BindingParameterCollection) BuildChannelListener<TChannel>(BindingParameterCollection) BuildChannelListener<TChannel>(BindingParameterCollection) BuildChannelListener<TChannel>(BindingParameterCollection)

指定した種類のチャネルを受け入れ、バインド パラメーターのコレクションで指定されている機能を満たすチャネル リスナーを、サービス上に構築します。Builds the channel listener on the service that accepts a specified type of channel and that satisfies the features specified by a collection of binding parameters.

BuildChannelListener<TChannel>(Object[]) BuildChannelListener<TChannel>(Object[]) BuildChannelListener<TChannel>(Object[]) BuildChannelListener<TChannel>(Object[])

指定した種類のチャネルを受け入れ、指定した機能を満たすチャネル リスナーを、サービス上に構築します。Builds the channel listener on the service that accepts a specified type of channel and that satisfies the features specified.

BuildChannelListener<TChannel>(Uri, BindingParameterCollection) BuildChannelListener<TChannel>(Uri, BindingParameterCollection) BuildChannelListener<TChannel>(Uri, BindingParameterCollection) BuildChannelListener<TChannel>(Uri, BindingParameterCollection)

指定した種類のチャネルを受け入れ、指定した機能を満たすチャネル リスナーを、サービス上に構築します。Builds the channel listener on the service that accepts a specified type of channel and that satisfies the features specified.

BuildChannelListener<TChannel>(Uri, Object[]) BuildChannelListener<TChannel>(Uri, Object[]) BuildChannelListener<TChannel>(Uri, Object[]) BuildChannelListener<TChannel>(Uri, Object[])

指定した種類のチャネルを受け入れ、指定した機能を満たすチャネル リスナーを、サービス上に構築します。Builds the channel listener on the service that accepts a specified type of channel and that satisfies the features specified.

BuildChannelListener<TChannel>(Uri, String, BindingParameterCollection) BuildChannelListener<TChannel>(Uri, String, BindingParameterCollection) BuildChannelListener<TChannel>(Uri, String, BindingParameterCollection) BuildChannelListener<TChannel>(Uri, String, BindingParameterCollection)

指定した種類のチャネルを受け入れ、指定した機能を満たすチャネル リスナーを、サービス上に構築します。Builds the channel listener on the service that accepts a specified type of channel and that satisfies the features specified.

BuildChannelListener<TChannel>(Uri, String, ListenUriMode, BindingParameterCollection) BuildChannelListener<TChannel>(Uri, String, ListenUriMode, BindingParameterCollection) BuildChannelListener<TChannel>(Uri, String, ListenUriMode, BindingParameterCollection) BuildChannelListener<TChannel>(Uri, String, ListenUriMode, BindingParameterCollection)

指定した種類のチャネルを受け入れ、指定した機能を満たすチャネル リスナーを、サービス上に構築します。Builds the channel listener on the service that accepts a specified type of channel and that satisfies the features specified.

BuildChannelListener<TChannel>(Uri, String, ListenUriMode, Object[]) BuildChannelListener<TChannel>(Uri, String, ListenUriMode, Object[]) BuildChannelListener<TChannel>(Uri, String, ListenUriMode, Object[]) BuildChannelListener<TChannel>(Uri, String, ListenUriMode, Object[])

指定した種類のチャネルを受け入れ、指定した機能を満たすチャネル リスナーを、サービス上に構築します。Builds the channel listener on the service that accepts a specified type of channel and that satisfies the features specified.

BuildChannelListener<TChannel>(Uri, String, Object[]) BuildChannelListener<TChannel>(Uri, String, Object[]) BuildChannelListener<TChannel>(Uri, String, Object[]) BuildChannelListener<TChannel>(Uri, String, Object[])

指定した種類のチャネルを受け入れ、指定した機能を満たすチャネル リスナーを、サービス上に構築します。Builds the channel listener on the service that accepts a specified type of channel and that satisfies the features specified.

CanBuildChannelFactory<TChannel>(BindingParameterCollection) CanBuildChannelFactory<TChannel>(BindingParameterCollection) CanBuildChannelFactory<TChannel>(BindingParameterCollection) CanBuildChannelFactory<TChannel>(BindingParameterCollection)

指定したバインド パラメーターのコレクションを満たすチャネル ファクトリ スタックを、現在のバインドがクライアント上に構築できるかどうかを示す値を返します。Returns a value that indicates whether the current binding can build a channel factory stack on the client that satisfies the collection of binding parameters specified.

CanBuildChannelFactory<TChannel>(Object[]) CanBuildChannelFactory<TChannel>(Object[]) CanBuildChannelFactory<TChannel>(Object[]) CanBuildChannelFactory<TChannel>(Object[])

オブジェクト配列で指定した要件を満たすチャネル ファクトリ スタックを、現在のバインドがクライアント上に構築できるかどうかを示す値を返します。Returns a value that indicates whether the current binding can build a channel factory stack on the client that satisfies the requirements specified by an object array.

CanBuildChannelListener<TChannel>(BindingParameterCollection) CanBuildChannelListener<TChannel>(BindingParameterCollection) CanBuildChannelListener<TChannel>(BindingParameterCollection) CanBuildChannelListener<TChannel>(BindingParameterCollection)

指定したバインド パラメーターのコレクションを満たすチャネル リスナー スタックを、現在のバインドがサービス上に構築できるかどうかを示す値を返します。Returns a value that indicates whether the current binding can build a channel listener stack on the service that satisfies the collection of binding parameters specified.

CanBuildChannelListener<TChannel>(Object[]) CanBuildChannelListener<TChannel>(Object[]) CanBuildChannelListener<TChannel>(Object[]) CanBuildChannelListener<TChannel>(Object[])

オブジェクトの配列で指定した条件を満たすチャネル リスナー スタックを、現在のバインドがサービス上に構築できるかどうかを示す値を返します。Returns a value that indicates whether the current binding can build a channel listener stack on the service that satisfies the criteria specified in an array of objects.

CreateBindingElements() CreateBindingElements() CreateBindingElements() CreateBindingElements()

派生クラスでオーバーライドされると、現在のバインドの一部であるバインド要素を格納するコレクションを作成します。When overridden in a derived class, creates a collection that contains the binding elements that are part of the current binding.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(Inherited from Object)
GetProperty<T>(BindingParameterCollection) GetProperty<T>(BindingParameterCollection) GetProperty<T>(BindingParameterCollection) GetProperty<T>(BindingParameterCollection)

バインド スタックの適切な層から、要求のあった型指定されたオブジェクト (ある場合) を返します。Returns a typed object requested, if present, from the appropriate layer in the binding stack.

GetType() GetType() GetType() GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(Inherited from Object)
ShouldSerializeName() ShouldSerializeName() ShouldSerializeName() ShouldSerializeName()

バインドの名前をシリアル化する必要があるかどうかを示す値を返します。Returns whether the name of the binding should be serialized.

ShouldSerializeNamespace() ShouldSerializeNamespace() ShouldSerializeNamespace() ShouldSerializeNamespace()

バインドの名前空間をシリアル化する必要があるかどうかを示す値を返します。Returns whether the namespace of the binding should be serialized.

ToString() ToString() ToString() ToString()

現在のオブジェクトを表す文字列を返します。Returns a string that represents the current object.

(Inherited from Object)

適用対象