IServerChannelSinkProvider Gränssnitt
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Skapar serverkanalmottagare för den serverkanal genom vilken fjärrkommunikationsmeddelanden flödar.
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
- Härledda
- Attribut
Exempel
I följande kodexempel visas en implementering av det här gränssnittet.
[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) {}
}
Se gränssnittsdokumentationen IServerChannelSink för ett exempel på motsvarande servermottagareimplementering.
Kommentarer
Kanalmottagare är anslutna till en serverkanal via implementeringar av IServerChannelSinkProvider gränssnittet. Alla fjärrkommunikationsserverkanaler tillhandahåller konstruktorer som tar en IServerChannelSinkProvider som en parameter.
Kanalmottagarens leverantörer lagras i en kedja och användaren ansvarar för att länka samman alla kanalmottagare innan den yttre skickas till kanalkonstruktorn. IServerChannelSinkProvider tillhandahåller en egenskap som anropas Next för detta ändamål.
När flera kanalmottagare anges i en konfigurationsfil kommer fjärrkommunikationsinfrastrukturen att länka ihop dem i den ordning de hittas i konfigurationsfilen. Kanalmottagarens providers skapas samtidigt som kanalen under ett RemotingConfiguration.Configure anrop.
När IMethodCallMessage har genererats söker .NET Framework igenom listan över registrerade kanaler för att hitta en som kan bearbeta anropet. När en lämplig kanal har hittats hämtas kanalmottagaren från kanalen och IMethodCallMessage vidarebefordras till mottagaren för bearbetning.
Egenskaper
| Name | Description |
|---|---|
| Next |
Hämtar eller anger nästa mottagarprovider i kanalmottagarens providerkedja. |
Metoder
| Name | Description |
|---|---|
| CreateSink(IChannelReceiver) |
Skapar en mottagarkedja. |
| GetChannelData(IChannelDataStore) |
Returnerar kanaldata för kanalen som den aktuella mottagaren är associerad med. |