Share via


IClientChannelSinkProvider Antarmuka

Definisi

Membuat sink saluran klien untuk saluran klien tempat pesan jarak jauh mengalir.

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
Turunan
Atribut

Contoh

Contoh kode berikut mengilustrasikan implementasi antarmuka ini.

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

IClientChannelSink Lihat dokumentasi antarmuka untuk contoh implementasi sink klien yang sesuai.

Keterangan

Sink saluran terhubung ke saluran klien melalui implementasi IClientChannelSinkProvider antarmuka. Semua saluran klien jarak jauh menyediakan konstruktor yang mengambil IClientChannelSinkProvider sebagai parameter.

Penyedia sink saluran disimpan dalam rantai, dan pengguna bertanggung jawab untuk menautkan semua penyedia sink saluran bersama-sama sebelum meneruskan yang luar ke konstruktor saluran. IClientChannelSinkProvider menyediakan properti yang dipanggil Next untuk tujuan ini.

Ketika beberapa penyedia sink saluran ditentukan dalam file konfigurasi, infrastruktur jarak jauh akan menautkannya bersama-sama dalam urutan yang ditemukan dalam file konfigurasi. Penyedia sink saluran akan dibuat saat saluran dibuat selama RemotingConfiguration.Configure panggilan.

Properti

Next

Mendapatkan atau mengatur penyedia sink berikutnya di rantai penyedia sink saluran.

Metode

CreateSink(IChannelSender, String, Object)

Membuat rantai sink.

Berlaku untuk