IClientChannelSinkProvider Интерфейс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Создает приемники каналов клиента для канала клиента, через который передаются сообщения удаленного взаимодействия.
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
- Производный
- Атрибуты
Примеры
В следующем примере кода показана реализация этого интерфейса.
[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) {}
}
IClientChannelSink Пример соответствующей реализации приемника клиента см. в документации по интерфейсу.
Комментарии
Приемники каналов подключаются к клиентскому каналу через реализации IClientChannelSinkProvider интерфейса . Все клиентские каналы удаленного взаимодействия предоставляют конструкторы, которые принимают в IClientChannelSinkProvider качестве параметра .
Поставщики приемников каналов хранятся в цепочке, и пользователь отвечает за объединение в цепочку всех поставщиков приемников каналов перед передачей внешнего поставщика в конструктор каналов. IClientChannelSinkProvider предоставляет свойство с именем Next для этой цели.
Если в файле конфигурации указано несколько поставщиков приемников каналов, инфраструктура удаленного взаимодействия будет связывать их в том порядке, в который они находятся в файле конфигурации. Поставщики приемников каналов будут созданы при создании канала во время RemotingConfiguration.Configure вызова.
Свойства
Next |
Возвращает или задает следующего провайдера приемников в цепи поставщика приемника канала. |
Методы
CreateSink(IChannelSender, String, Object) |
Создает цепочку приемников. |