ISubscriptionClient Interface

Definition

SubscriptionClient can be used for all basic interactions with a Service Bus Subscription.

public interface ISubscriptionClient : Microsoft.Azure.ServiceBus.Core.IReceiverClient
type ISubscriptionClient = interface
    interface IReceiverClient
    interface IClientEntity
Public Interface ISubscriptionClient
Implements IReceiverClient
Derived
Implements

Examples

Create a new SubscriptionClient

ISubscriptionClient subscriptionClient = new SubscriptionClient(
    namespaceConnectionString,
    topicName,
    subscriptionName,
    ReceiveMode.PeekLock,
    RetryExponential);

Register a message handler which will be invoked every time a message is received.

subscriptionClient.RegisterMessageHandler(
       async (message, token) =>
       {
           // Process the message
           Console.WriteLine($"Received message: SequenceNumber:{message.SystemProperties.SequenceNumber} Body:{Encoding.UTF8.GetString(message.Body)}");

           // Complete the message so that it is not received again.
           // This can be done only if the subscriptionClient is opened in ReceiveMode.PeekLock mode.
           await subscriptionClient.CompleteAsync(message.SystemProperties.LockToken);
       },
       async (exceptionEvent) =>
       {
           // Process the exception
           Console.WriteLine("Exception = " + exceptionEvent.Exception);
           return Task.CompletedTask;
       });

Remarks

Use MessageReceiver for advanced set of functionality.

Properties

Path

Gets the path of the IReceiverClient. This is either the name of the queue, or the full path of the subscription.

(Inherited from IReceiverClient)
PrefetchCount

Prefetch speeds up the message flow by aiming to have a message readily available for local retrieval when and before the application asks for one using Receive. Setting a non-zero value prefetches PrefetchCount number of messages. Setting the value to zero turns prefetch off. Defaults to 0.

(Inherited from IReceiverClient)
ReceiveMode

Gets the ReceiveMode of the current receiver.

(Inherited from IReceiverClient)
SubscriptionName

Gets the name of subscription.

TopicPath

Gets the path of the topic, for this subscription.

Methods

AbandonAsync(String, IDictionary<String,Object>)

Abandons a Message using a lock token. This will make the message available again for processing.

(Inherited from IReceiverClient)
AddRuleAsync(RuleDescription)

Adds a rule to the current subscription to filter the messages reaching from topic to the subscription.

AddRuleAsync(String, Filter)

Adds a rule to the current subscription to filter the messages reaching from topic to the subscription.

CompleteAsync(String)

Completes a Message using its lock token. This will delete the message from the queue.

(Inherited from IReceiverClient)
DeadLetterAsync(String, IDictionary<String,Object>)

Moves a message to the deadletter sub-queue.

(Inherited from IReceiverClient)
DeadLetterAsync(String, String, String)

Moves a message to the deadletter sub-queue.

(Inherited from IReceiverClient)
GetRulesAsync()

Get all rules associated with the subscription.

RegisterMessageHandler(Func<Message,CancellationToken,Task>, Func<ExceptionReceivedEventArgs,Task>)

Receive messages continuously from the entity. Registers a message handler and begins a new thread to receive messages. This handler(Func<T1, T2, TResult>) is awaited on every time a new message is received by the receiver.

(Inherited from IReceiverClient)
RegisterMessageHandler(Func<Message,CancellationToken,Task>, MessageHandlerOptions)

Receive messages continuously from the entity. Registers a message handler and begins a new thread to receive messages. This handler(Func<T1, T2, TResult>) is awaited on every time a new message is received by the receiver.

(Inherited from IReceiverClient)
RegisterSessionHandler(Func<IMessageSession,Message,CancellationToken,Task>, Func<ExceptionReceivedEventArgs,Task>)

Receive session messages continuously from the subscription. Registers a message handler and begins a new thread to receive session-messages. This handler(Func<T1, T2, T3, TResult>) is awaited on every time a new message is received by the subscription client.

RegisterSessionHandler(Func<IMessageSession,Message,CancellationToken,Task>, SessionHandlerOptions)

Receive session messages continuously from the subscription. Registers a message handler and begins a new thread to receive session-messages. This handler(Func<T1, T2, T3, TResult>) is awaited on every time a new message is received by the subscription client.

RemoveRuleAsync(String)

Removes the rule on the subscription identified by ruleName.

Applies to