IClientChannelSinkProvider Schnittstelle

Definition

Erstellt Clientchannelsenken für den Clientchannel, über den Remotemeldungen übertragen werden.

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

Das folgende Codebeispiel veranschaulicht eine Implementierung dieser Schnittstelle.

[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 IClientChannelSink entsprechende Clientsenkeimplementierung finden Sie in der Schnittstellendokumentation.

Hinweise

Kanalsenken sind über Implementierungen der IClientChannelSinkProvider Schnittstelle mit einem Clientkanal verbunden. Alle Remotingclientkanäle stellen Konstruktoren bereit, die einen IClientChannelSinkProvider als 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 für diesen Zweck aufgerufen wird Next .

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

Eigenschaften

Next

Ruft den nächsten Senkenprovider in der Kette der Channelsenkenprovider ab oder legt diesen fest.

Methoden

CreateSink(IChannelSender, String, Object)

Erstellt eine Senkenkette.

Gilt für: