IClientChannelSinkProvider Interfejs
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Tworzy ujścia kanału klienta dla kanału klienta, za pośrednictwem którego przepływ komunikatów komunikacji sieciowej.
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
- Pochodne
- Atrybuty
Przykłady
Poniższy przykład kodu ilustruje implementację tego interfejsu.
[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) {}
}
Zapoznaj się z dokumentacją interfejsu IClientChannelSink , aby zapoznać się z przykładem odpowiedniej implementacji ujścia klienta.
Uwagi
Ujścia kanału są połączone z kanałem klienta za pośrednictwem implementacji interfejsu IClientChannelSinkProvider . Wszystkie kanały klienta komunikacji zdalniej udostępniają konstruktory, które przyjmują IClientChannelSinkProvider parametr jako parametr.
Dostawcy ujścia kanału są przechowywani w łańcuchu, a użytkownik jest odpowiedzialny za łączenie wszystkich dostawców ujścia kanału przed przekazaniem zewnętrznego do konstruktora kanału. IClientChannelSinkProvider udostępnia właściwość wywoływaną Next do tego celu.
Jeśli w pliku konfiguracji określono wielu dostawców ujścia kanału, infrastruktura komunikacji wirtualnej połączy je ze sobą w kolejności, w której znajdują się w pliku konfiguracji. Dostawcy ujścia kanału zostaną utworzeni po utworzeniu kanału podczas wywołania RemotingConfiguration.Configure .
Właściwości
Next |
Pobiera lub ustawia następnego dostawcę ujścia w łańcuchu dostawcy ujścia kanału. |
Metody
CreateSink(IChannelSender, String, Object) |
Tworzy łańcuch ujścia. |