Udostępnij za pośrednictwem


IChannelReceiverHook.AddHookChannelUri(String) Metoda

Definicja

Dodaje identyfikator URI, na którym będzie nasłuchiwać punkt zaczepienia kanału.

public:
 void AddHookChannelUri(System::String ^ channelUri);
public void AddHookChannelUri (string channelUri);
[System.Security.SecurityCritical]
public void AddHookChannelUri (string channelUri);
abstract member AddHookChannelUri : string -> unit
[<System.Security.SecurityCritical>]
abstract member AddHookChannelUri : string -> unit
Public Sub AddHookChannelUri (channelUri As String)

Parametry

channelUri
String

Identyfikator URI, na którym będzie nasłuchiwać punkt zaczepienia kanału.

Atrybuty

Wyjątki

Bezpośredni obiekt wywołujący nie ma uprawnień do infrastruktury.

Przykłady

ref class CustomChannel: public BaseChannelWithProperties, public IChannelReceiverHook, public IChannelReceiver, public IChannel, public IChannelSender
{
public:
   virtual void AddHookChannelUri( String^ channelUri )
   {
      if ( channelUri != nullptr )
      {
         array<String^>^uris = dataStore->ChannelUris;

         // This implementation only allows one URI to be hooked in.
         if ( uris == nullptr )
         {
            array<String^>^newUris = gcnew array<String^>(1);
            newUris[ 0 ] = channelUri;
            dataStore->ChannelUris = newUris;
            wantsToListen = false;
         }
         else
         {
            String^ msg = "This channel is already listening for data, and can't be hooked into at this stage.";
            throw gcnew System::Runtime::Remoting::RemotingException( msg );
         }
      }
   }

   // The rest of CustomChannel's implementation.
class CustomChannel : BaseChannelWithProperties, IChannelReceiverHook,
                      IChannelReceiver, IChannel, IChannelSender {

   public void AddHookChannelUri(string channelUri) {

      if (channelUri != null) {
         string [] uris = dataStore.ChannelUris;
             
         // This implementation only allows one URI to be hooked in.
         if (uris == null) {
            string [] newUris = new string[1];
            newUris[0] = channelUri;
            dataStore.ChannelUris = newUris;
            wantsToListen = false;
         } else {
            string msg = "This channel is already listening for " +
               "data, and can't be hooked into at this stage.";
            throw new System.Runtime.Remoting.RemotingException(msg);
         }
      }
   }
   // The rest of CustomChannel's implementation.
Class CustomChannel
   Inherits BaseChannelWithProperties
   Implements IChannelReceiverHook, IChannelReceiver, IChannel, IChannelSender

   Public Sub AddHookChannelUri(ByVal channelUri As String) _
                        Implements IChannelReceiverHook.AddHookChannelUri

      If Not (channelUri Is Nothing) Then
         Dim uris As String() = dataStore.ChannelUris

         ' This implementation only allows one URI to be hooked in.
         If uris Is Nothing Then
            Dim newUris(1) As String
            newUris(0) = channelUri
            dataStore.ChannelUris = newUris
            wantsListen = False
         Else
            Dim msg As String
            msg = "This channel is already listening for data, and " + _
                  "can't be hooked into at this stage."
            Throw New System.Runtime.Remoting.RemotingException(msg)
         End If
      End If
   End Sub

   ' The rest of CustomChannel's implementation.

Uwagi

Kod klienta nie powinien wywoływać tej metody bezpośrednio.

Dotyczy