Share via


IServerChannelSinkProvider Arabirim

Tanım

uzaktan iletişim iletilerinin aktığı sunucu kanalı için sunucu kanalı havuzları oluşturur.

public interface class IServerChannelSinkProvider
public interface IServerChannelSinkProvider
[System.Runtime.InteropServices.ComVisible(true)]
public interface IServerChannelSinkProvider
type IServerChannelSinkProvider = interface
[<System.Runtime.InteropServices.ComVisible(true)>]
type IServerChannelSinkProvider = interface
Public Interface IServerChannelSinkProvider
Türetilmiş
Öznitelikler

Örnekler

Aşağıdaki kod örneği, bu arabirimin bir uygulamasını gösterir.

[System::Security::Permissions::PermissionSet(System::Security::
   Permissions::SecurityAction::Demand, Name = "FullTrust")]
public ref class ServerSinkProvider: public IServerChannelSinkProvider
{
   // The next provider in the chain.
private:
   IServerChannelSinkProvider^ nextProvider;

public:
   property IServerChannelSinkProvider^ Next 
   {
      virtual IServerChannelSinkProvider^ get()
      {
         return (nextProvider);
      }

      virtual void set( IServerChannelSinkProvider^ value )
      {
         nextProvider = value;
      }
   }

   virtual IServerChannelSink^ CreateSink( IChannelReceiver^ channel )
   {
      Console::WriteLine( "Creating ServerSink" );

      // Create the next sink in the chain.
      IServerChannelSink^ nextSink = nextProvider->CreateSink( channel );

      // Hook our sink up to it.
      return (gcnew ServerSink( nextSink ));
   }

   virtual void GetChannelData( IChannelDataStore^ /*channelData*/ ){}

   // 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.
   ServerSinkProvider( IDictionary^ /*properties*/, ICollection^ /*providerData*/ ){}
};
public class ServerSinkProvider : IServerChannelSinkProvider
{

    // The next provider in the chain.
    private IServerChannelSinkProvider nextProvider;

    public IServerChannelSinkProvider Next
    {
        get
        {
            return(nextProvider);
        }
        set
        {
            nextProvider = value;
        }
    }

    public IServerChannelSink CreateSink (IChannelReceiver channel)
    {
        Console.WriteLine("Creating ServerSink");

        // Create the next sink in the chain.
        IServerChannelSink nextSink = nextProvider.CreateSink(channel);

        // Hook our sink up to it.
        return( new ServerSink(nextSink) );
    }

    public void GetChannelData (IChannelDataStore channelData) {}

    // 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 ServerSinkProvider (IDictionary properties, ICollection providerData) {}
}

IServerChannelSink İlgili sunucu havuzu uygulaması örneği için arabirim belgelerine bakın.

Açıklamalar

Kanal havuzları, arabirimin uygulamaları aracılığıyla bir sunucu kanalına IServerChannelSinkProvider bağlanır. Tüm uzaktan iletişim sunucusu kanalları, parametre olarak alan IServerChannelSinkProvider oluşturucular sağlar.

Kanal havuzu sağlayıcıları bir zincirde depolanır ve dış sağlayıcıyı kanal oluşturucuya geçirmeden önce tüm kanal havuzu sağlayıcılarını zincirleme sorumluluğu kullanıcı tarafından sağlanır. IServerChannelSinkProvider bu amaç için adlı Next bir özellik sağlar.

Yapılandırma dosyasında birden çok kanal havuzu sağlayıcısı belirtildiğinde uzaktan iletişim altyapısı bunları yapılandırma dosyasında bulundukları sırayla birbirine zincirler. Kanal havuzu sağlayıcıları, bir RemotingConfiguration.Configure çağrı sırasında kanalla aynı anda oluşturulur.

IMethodCallMessage oluşturulduktan sonra, .NET Framework aramayı işleyebilen bir kanal bulmak için kayıtlı kanallar listesinde aramalar yapabilir. Uygun bir kanal bulunduktan sonra kanal havuzu kanaldan alınır ve IMethodCallMessage işlenmek üzere havuza iletilir.

Özellikler

Next

Kanal havuzu sağlayıcı zincirinde sonraki havuz sağlayıcısını alır veya ayarlar.

Yöntemler

CreateSink(IChannelReceiver)

Havuz zinciri oluşturur.

GetChannelData(IChannelDataStore)

Geçerli havuzun ilişkili olduğu kanalın kanal verilerini döndürür.

Şunlara uygulanır