Rediger

Del via


IChannelReceiverHook.AddHookChannelUri(String) Method

Definition

Adds a URI on which the channel hook will listen.

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)

Parameters

channelUri
String

A URI on which the channel hook will listen.

Attributes

Exceptions

The immediate caller does not have infrastructure permission.

Examples

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.

Remarks

Client code should not call this method directly.

Applies to