IClientChannelSinkProvider Interfaccia

Definizione

Crea sink di canale client per il canale client tramite il quale il flusso dei messaggi remoti.

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
Derivato
Attributi

Esempio

Nell'esempio di codice seguente viene illustrata un'implementazione di questa interfaccia.

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

Vedere la documentazione dell'interfaccia IClientChannelSink per un esempio dell'implementazione del sink client corrispondente.

Commenti

I sink di canale sono connessi a un canale client tramite implementazioni dell'interfaccia IClientChannelSinkProvider . Tutti i canali client remoti forniscono costruttori che accettano come IClientChannelSinkProvider parametro .

I provider di sink del canale vengono archiviati in una catena e l'utente è responsabile del concatenamento di tutti i provider di sink di canale prima di passare quello esterno al costruttore del canale. IClientChannelSinkProvider fornisce una proprietà denominata Next a questo scopo.

Quando in un file di configurazione vengono specificati più provider di sink del canale, l'infrastruttura di comunicazione remota li concatena nell'ordine in cui si trovano nel file di configurazione. I provider di sink del canale verranno creati quando il canale viene creato durante la RemotingConfiguration.Configure chiamata.

Proprietà

Nome Descrizione
Next

Ottiene o imposta il provider sink successivo nella catena del provider del sink del canale.

Metodi

Nome Descrizione
CreateSink(IChannelSender, String, Object)

Crea una catena di sink.

Si applica a