IClientChannelSinkProvider Gränssnitt

Definition

Skapar klientkanalmottagare för klientkanalen genom vilken fjärrkommunikationsmeddelanden flödar.

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
Härledda
Attribut

Exempel

I följande kodexempel visas en implementering av det här gränssnittet.

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

Se gränssnittsdokumentationen IClientChannelSink för ett exempel på motsvarande implementering av klientmottagare.

Kommentarer

Kanalmottagare är anslutna till en klientkanal via implementeringar av IClientChannelSinkProvider gränssnittet. Alla klientkanaler för fjärrkommunikation tillhandahåller konstruktorer som tar en IClientChannelSinkProvider som en parameter.

Kanalmottagarens leverantörer lagras i en kedja och användaren ansvarar för att länka samman alla kanalmottagare innan den yttre skickas till kanalkonstruktorn. IClientChannelSinkProvider tillhandahåller en egenskap som anropas Next för detta ändamål.

När flera kanalmottagare anges i en konfigurationsfil kommer fjärrkommunikationsinfrastrukturen att länka ihop dem i den ordning de hittas i konfigurationsfilen. Kanalmottagarens providers skapas när kanalen skapas under anropet RemotingConfiguration.Configure .

Egenskaper

Name Description
Next

Hämtar eller anger nästa mottagarprovider i kanalmottagarens providerkedja.

Metoder

Name Description
CreateSink(IChannelSender, String, Object)

Skapar en mottagarkedja.

Gäller för