IServerChannelSinkProvider Interface

Définition

Crée des récepteurs de canal serveur pour le canal serveur sur lequel circulent les messages de communication à distance.

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
Dérivé
Attributs

Exemples

L’exemple de code suivant illustre une implémentation de cette interface.

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

Consultez la documentation de l’interface IServerChannelSink pour obtenir un exemple d’implémentation de récepteur de serveur correspondante.

Remarques

Les récepteurs de canal sont connectés à un canal serveur par le biais d’implémentations de l’interface IServerChannelSinkProvider . Tous les canaux de serveur de communication à distance fournissent des constructeurs qui prennent un IServerChannelSinkProvider comme paramètre.

Les fournisseurs de récepteurs de canaux sont stockés dans une chaîne, et l’utilisateur est responsable du chaînage de tous les fournisseurs de récepteurs de canal avant de passer le fournisseur externe au constructeur de canal. IServerChannelSinkProvider fournit une propriété appelée Next à cet effet.

Lorsque plusieurs fournisseurs de récepteurs de canaux sont spécifiés dans un fichier de configuration, l’infrastructure de communication à distance les enchaîne dans l’ordre dans lequel ils se trouvent dans le fichier de configuration. Les fournisseurs de récepteurs de canal sont créés en même temps que le canal, lors d’un RemotingConfiguration.Configure appel.

Une fois le IMethodCallMessage est généré, .NET Framework effectue une recherche dans la liste des canaux inscrits pour en trouver un qui peut traiter l’appel. Une fois qu’un canal approprié a été trouvé, le récepteur de canal est récupéré à partir du canal et le IMethodCallMessage est transféré au récepteur pour traitement.

Propriétés

Next

Obtient ou définit le fournisseur de récepteur suivant dans la chaîne de fournisseurs de récepteur de canal.

Méthodes

CreateSink(IChannelReceiver)

Crée une chaîne de récepteurs.

GetChannelData(IChannelDataStore)

Retourne les données de canal pour le canal auquel le récepteur en cours est associé.

S’applique à