IClientChannelSinkProvider Schnittstelle
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Erstellt Clientkanalsenken für den Clientkanal, über den Remotingnachrichten fließen.
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
- Abgeleitet
- Attribute
Beispiele
Im folgenden Codebeispiel wird eine Implementierung dieser Schnittstelle veranschaulicht.
[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) {}
}
Ein Beispiel für die entsprechende Client-Sink-Implementierung finden Sie in der IClientChannelSink Schnittstellendokumentation.
Hinweise
Kanalsenken werden über Implementierungen der IClientChannelSinkProvider Schnittstelle mit einem Clientkanal verbunden. Alle Remoting-Clientkanäle stellen Konstruktoren bereit, die einen IClientChannelSinkProvider Parameter verwenden.
Kanalsenkenanbieter werden in einer Kette gespeichert, und der Benutzer ist für das Verketten aller Kanalsenkenanbieter verantwortlich, bevor er den äußeren an den Kanalkonstruktor übergibt. IClientChannelSinkProvider stellt eine Eigenschaft bereit, die zu diesem Zweck aufgerufen wird Next .
Wenn mehrere Kanalsenkenanbieter in einer Konfigurationsdatei angegeben werden, verkettet die Remotinginfrastruktur sie in der Reihenfolge, in der sie in der Konfigurationsdatei zu finden sind. Die Kanalsenkenanbieter werden erstellt, wenn der Kanal während des RemotingConfiguration.Configure Anrufs erstellt wird.
Eigenschaften
| Name | Beschreibung |
|---|---|
| Next |
Ruft den nächsten Sinkanbieter in der Kanalsenkenanbieterkette ab oder legt den nächst. |
Methoden
| Name | Beschreibung |
|---|---|
| CreateSink(IChannelSender, String, Object) |
Erstellt eine Senkenkette. |