IServerChannelSinkProvider Rozhraní
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vytvoří jímky kanálu serveru pro kanál serveru, kterým procházejí zprávy vzdálené komunikace.
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
- Odvozené
- Atributy
Příklady
Následující příklad kódu znázorňuje implementaci tohoto rozhraní.
[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) {}
}
Příklad implementace odpovídající jímky serveru najdete v IServerChannelSink dokumentaci k rozhraní.
Poznámky
Jímky kanálů jsou připojeny k kanálu serveru prostřednictvím implementací IServerChannelSinkProvider rozhraní. Všechny kanály serveru vzdálené komunikace poskytují konstruktory, které jako parametr přebírají IServerChannelSinkProvider .
Poskytovatelé jímky kanálů jsou uloženi v řetězu a uživatel zodpovídá za zřetězení všech poskytovatelů jímky kanálů před předáním vnějšího zprostředkovatele do konstruktoru kanálu. IServerChannelSinkProvider poskytuje vlastnost, která je pro tento účel volána Next .
Pokud je v konfiguračním souboru zadáno více poskytovatelů jímky kanálů, infrastruktura vzdálené komunikace je zřetědí v pořadí, v jakém jsou nalezeny v konfiguračním souboru. Poskytovatelé jímky kanálů se vytvářejí současně s kanálem RemotingConfiguration.Configure během hovoru.
IMethodCallMessage Po vygenerování rozhraní .NET Framework prohledá seznam registrovaných kanálů a najde kanál, který může zpracovat volání. Po nalezení vhodného kanálu se jímka kanálu načte z kanálu a IMethodCallMessage přepošla se do jímky ke zpracování.
Vlastnosti
Next |
Získá nebo nastaví dalšího poskytovatele jímky v řetězu zprostředkovatele kanálu jímky. |
Metody
CreateSink(IChannelReceiver) |
Vytvoří řetěz jímky. |
GetChannelData(IChannelDataStore) |
Vrátí data kanálu, ke kterému je přidružena aktuální jímka. |