IServerChannelSinkProvider インターフェイス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
リモート処理メッセージが流れているサーバー チャネルのサーバー チャネル シンクを作成します。
public interface class IServerChannelSinkProvider
public interface IServerChannelSinkProvider
[System.Runtime.InteropServices.ComVisible(true)]
public interface IServerChannelSinkProvider
type IServerChannelSinkProvider = interface
[<System.Runtime.InteropServices.ComVisible(true)>]
type IServerChannelSinkProvider = interface
Public Interface IServerChannelSinkProvider
- 派生
- 属性
例
次のコード例は、このインターフェイスの実装を示しています。
[System::Security::Permissions::PermissionSet(System::Security::
Permissions::SecurityAction::Demand, Name = "FullTrust")]
public ref class ServerSinkProvider: public IServerChannelSinkProvider
{
// The next provider in the chain.
private:
IServerChannelSinkProvider^ nextProvider;
public:
property IServerChannelSinkProvider^ Next
{
virtual IServerChannelSinkProvider^ get()
{
return (nextProvider);
}
virtual void set( IServerChannelSinkProvider^ value )
{
nextProvider = value;
}
}
virtual IServerChannelSink^ CreateSink( IChannelReceiver^ channel )
{
Console::WriteLine( "Creating ServerSink" );
// Create the next sink in the chain.
IServerChannelSink^ nextSink = nextProvider->CreateSink( channel );
// Hook our sink up to it.
return (gcnew ServerSink( nextSink ));
}
virtual void GetChannelData( IChannelDataStore^ /*channelData*/ ){}
// 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.
ServerSinkProvider( IDictionary^ /*properties*/, ICollection^ /*providerData*/ ){}
};
public class ServerSinkProvider : IServerChannelSinkProvider
{
// The next provider in the chain.
private IServerChannelSinkProvider nextProvider;
public IServerChannelSinkProvider Next
{
get
{
return(nextProvider);
}
set
{
nextProvider = value;
}
}
public IServerChannelSink CreateSink (IChannelReceiver channel)
{
Console.WriteLine("Creating ServerSink");
// Create the next sink in the chain.
IServerChannelSink nextSink = nextProvider.CreateSink(channel);
// Hook our sink up to it.
return( new ServerSink(nextSink) );
}
public void GetChannelData (IChannelDataStore channelData) {}
// 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 ServerSinkProvider (IDictionary properties, ICollection providerData) {}
}
対応するサーバー シンクの IServerChannelSink 実装の例については、インターフェイスのドキュメントを参照してください。
注釈
チャネル シンクは、 インターフェイスの実装を介してサーバー チャネルに IServerChannelSinkProvider 接続されます。 すべてのリモート処理サーバー チャネルには、 をパラメーターとして受け取る IServerChannelSinkProvider コンストラクターが用意されています。
チャネル シンク プロバイダーはチェーンに格納され、ユーザーは外部プロバイダーをチャネル コンストラクターに渡す前に、すべてのチャネル シンク プロバイダーを一緒にチェーンする必要があります。 IServerChannelSinkProvider は、この目的のために というプロパティ Next を提供します。
構成ファイルに複数のチャネル シンク プロバイダーが指定されている場合、リモート処理インフラストラクチャは、構成ファイル内の順序でそれらを連結します。 チャネル シンク プロバイダーは、呼び出し中にチャネルと同時に RemotingConfiguration.Configure 作成されます。
IMethodCallMessageが生成された後、.NET Frameworkは登録済みチャネルの一覧を検索して、呼び出しを処理できるチャネルを見つけます。 適切なチャネルが見つかったら、チャネル シンクがチャネルから取得され IMethodCallMessage 、 が処理のためにシンクに転送されます。
プロパティ
Next |
チャネル シンク プロバイダー チェイン内の次のシンク プロバイダーを取得または設定します。 |
メソッド
CreateSink(IChannelReceiver) |
シンク チェインを作成します。 |
GetChannelData(IChannelDataStore) |
現在のシンクが関連付けられているチャネルのチャネル データを返します。 |
適用対象
.NET