IClientChannelSinkProvider Interface
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee maakt u clientkanaalsinks voor het clientkanaal waarmee externe berichten stromen.
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
- Afgeleid
- Kenmerken
Voorbeelden
In het volgende codevoorbeeld ziet u een implementatie van deze interface.
[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) {}
}
Zie de IClientChannelSink interfacedocumentatie voor een voorbeeld van de bijbehorende client-sink-implementatie.
Opmerkingen
Kanaalsinks zijn via implementaties van de IClientChannelSinkProvider interface verbonden met een clientkanaal. Alle externe clientkanalen bieden constructors die een IClientChannelSinkProvider parameter gebruiken.
Kanaalsinkproviders worden opgeslagen in een keten en de gebruiker is verantwoordelijk voor het koppelen van alle kanaals sinkproviders voordat de buitenste provider aan de kanaalconstructor wordt doorgegeven. IClientChannelSinkProvider biedt een eigenschap die voor dit doel wordt aangeroepen Next .
Wanneer meerdere kanaals sinkproviders zijn opgegeven in een configuratiebestand, worden deze door de externe infrastructuur aan elkaar gekoppeld in de volgorde waarin ze in het configuratiebestand worden gevonden. De kanaalsinkproviders worden gemaakt wanneer het kanaal wordt gemaakt tijdens de RemotingConfiguration.Configure aanroep.
Eigenschappen
| Name | Description |
|---|---|
| Next |
Hiermee haalt u de volgende sinkprovider op in de keten van de kanaalsinkprovider. |
Methoden
| Name | Description |
|---|---|
| CreateSink(IChannelSender, String, Object) |
Hiermee maakt u een sinkketen. |