Sdílet prostřednictvím


IServerChannelSinkProvider Rozhraní

Definice

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.

Platí pro