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 처리를 위해 싱크로 전달됩니다.
속성
| Name | Description |
|---|---|
| Next |
채널 싱크 공급자 체인에서 다음 싱크 공급자를 가져오거나 설정합니다. |
메서드
| Name | Description |
|---|---|
| CreateSink(IChannelReceiver) |
싱크 체인을 만듭니다. |
| GetChannelData(IChannelDataStore) |
현재 싱크가 연결된 채널의 채널 데이터를 반환합니다. |