IClientChannelSinkProvider Schnittstelle

Definition

Erstellt Clientkanalsenken für den Clientkanal, über den Remotingnachrichten fließen.

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
Abgeleitet
Attribute

Beispiele

Im folgenden Codebeispiel wird eine Implementierung dieser Schnittstelle veranschaulicht.

[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) {}
}

Ein Beispiel für die entsprechende Client-Sink-Implementierung finden Sie in der IClientChannelSink Schnittstellendokumentation.

Hinweise

Kanalsenken werden über Implementierungen der IClientChannelSinkProvider Schnittstelle mit einem Clientkanal verbunden. Alle Remoting-Clientkanäle stellen Konstruktoren bereit, die einen IClientChannelSinkProvider Parameter verwenden.

Kanalsenkenanbieter werden in einer Kette gespeichert, und der Benutzer ist für das Verketten aller Kanalsenkenanbieter verantwortlich, bevor er den äußeren an den Kanalkonstruktor übergibt. IClientChannelSinkProvider stellt eine Eigenschaft bereit, die zu diesem Zweck aufgerufen wird Next .

Wenn mehrere Kanalsenkenanbieter in einer Konfigurationsdatei angegeben werden, verkettet die Remotinginfrastruktur sie in der Reihenfolge, in der sie in der Konfigurationsdatei zu finden sind. Die Kanalsenkenanbieter werden erstellt, wenn der Kanal während des RemotingConfiguration.Configure Anrufs erstellt wird.

Eigenschaften

Name Beschreibung
Next

Ruft den nächsten Sinkanbieter in der Kanalsenkenanbieterkette ab oder legt den nächst.

Methoden

Name Beschreibung
CreateSink(IChannelSender, String, Object)

Erstellt eine Senkenkette.

Gilt für: