IClientChannelSinkProvider インターフェイス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
リモート処理メッセージが流れているクライアント チャネルのクライアント チャネル シンクを作成します。
public interface class IClientChannelSinkProvider
public interface IClientChannelSinkProvider
[System.Runtime.InteropServices.ComVisible(true)]
public interface IClientChannelSinkProvider
type IClientChannelSinkProvider = interface
[<System.Runtime.InteropServices.ComVisible(true)>]
type IClientChannelSinkProvider = interface
Public Interface IClientChannelSinkProvider
- 派生
- 属性
例
次のコード例は、このインターフェイスの実装を示しています。
[System::Security::Permissions::PermissionSet(System::Security::
Permissions::SecurityAction::Demand, Name = "FullTrust")]
public ref class ClientSinkProvider: public IClientChannelSinkProvider
{
private:
// The next provider in the chain.
IClientChannelSinkProvider^ nextProvider;
public:
property IClientChannelSinkProvider^ Next
{
virtual IClientChannelSinkProvider^ get()
{
return (nextProvider);
}
virtual void set( IClientChannelSinkProvider^ value )
{
nextProvider = value;
}
}
virtual IClientChannelSink^ CreateSink( IChannelSender^ channel, String^ url, Object^ remoteChannelData )
{
Console::WriteLine( "Creating ClientSink for {0}", url );
// Create the next sink in the chain.
IClientChannelSink^ nextSink = nextProvider->CreateSink( channel, url, remoteChannelData );
// Hook our sink up to it.
return (gcnew ClientSink( nextSink ));
}
// This constructor is required in order to use the provider in file-based configuration.
// It need not do anything unless you want to use the information in the parameters.
ClientSinkProvider( IDictionary^ /*properties*/, ICollection^ /*providerData*/ ){}
};
public class ClientSinkProvider : IClientChannelSinkProvider
{
// The next provider in the chain.
private IClientChannelSinkProvider nextProvider;
public IClientChannelSinkProvider Next
{
get
{
return(nextProvider);
}
set
{
nextProvider = value;
}
}
public IClientChannelSink CreateSink (IChannelSender channel, String url, Object remoteChannelData)
{
Console.WriteLine("Creating ClientSink for {0}", url);
// Create the next sink in the chain.
IClientChannelSink nextSink = nextProvider.CreateSink(channel, url, remoteChannelData);
// Hook our sink up to it.
return( new ClientSink(nextSink) );
}
// This constructor is required in order to use the provider in file-based configuration.
// It need not do anything unless you want to use the information in the parameters.
public ClientSinkProvider (IDictionary properties, ICollection providerData) {}
}
対応するクライアント シンクの IClientChannelSink 実装の例については、インターフェイスのドキュメントを参照してください。
注釈
チャネル シンクは、 インターフェイスの実装を介してクライアント チャネルに IClientChannelSinkProvider 接続されます。 すべてのリモート処理クライアント チャネルには、 をパラメーターとして受け取る IClientChannelSinkProvider コンストラクターが用意されています。
チャネル シンク プロバイダーはチェーンに格納され、ユーザーは外部プロバイダーをチャネル コンストラクターに渡す前に、すべてのチャネル シンク プロバイダーを一緒にチェーンする必要があります。 IClientChannelSinkProvider は、この目的のために というプロパティ Next を提供します。
構成ファイルに複数のチャネル シンク プロバイダーが指定されている場合、リモート処理インフラストラクチャは、構成ファイル内の順序でそれらを連結します。 チャネル シンク プロバイダーは、呼び出し中 RemotingConfiguration.Configure にチャネルが作成されるときに作成されます。
プロパティ
Next |
チャネル シンク プロバイダー チェイン内の次のシンク プロバイダーを取得または設定します。 |
メソッド
CreateSink(IChannelSender, String, Object) |
シンク チェインを作成します。 |
適用対象
.NET