IServerChannelSinkProvider Interfaz

Definición

Crea receptores de canal del servidor para el canal del servidor por donde circulan los mensajes de comunicación remota.

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
Derivado
Atributos

Ejemplos

En el ejemplo de código siguiente se muestra una implementación de esta interfaz.

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

Consulte la documentación de la IServerChannelSink interfaz para obtener un ejemplo de la implementación del receptor del servidor correspondiente.

Comentarios

Los receptores de canal se conectan a un canal de servidor a través de implementaciones de la IServerChannelSinkProvider interfaz . Todos los canales de servidor remoto proporcionan constructores que toman como IServerChannelSinkProvider parámetro .

Los proveedores de receptores de canal se almacenan en una cadena y el usuario es responsable de encadenar todos los proveedores receptores de canal juntos antes de pasar el externo al constructor del canal. IServerChannelSinkProvider proporciona una propiedad denominada Next para este propósito.

Cuando se especifican varios proveedores de receptores de canal en un archivo de configuración, la infraestructura de comunicación remota los encadenará en el orden en que se encuentran en el archivo de configuración. Los proveedores de receptores del canal se crean al mismo tiempo que el canal, durante una RemotingConfiguration.Configure llamada.

IMethodCallMessage Una vez generado , .NET Framework busca en la lista de canales registrados para buscar uno que pueda procesar la llamada. Una vez encontrado un canal adecuado, el receptor del canal se recupera del canal y IMethodCallMessage se reenvía al receptor para su procesamiento.

Propiedades

Next

Obtiene o establece el siguiente proveedor de receptor en la cadena de proveedores de receptores del canal.

Métodos

CreateSink(IChannelReceiver)

Crea una cadena de receptores.

GetChannelData(IChannelDataStore)

Devuelve los datos de canal del canal al que está asociado el receptor actual.

Se aplica a