你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

ISubscriptionClient 接口

定义

SubscriptionClient 可用于与服务总线订阅的所有基本交互。

public interface ISubscriptionClient : Microsoft.Azure.ServiceBus.Core.IReceiverClient
type ISubscriptionClient = interface
    interface IReceiverClient
    interface IClientEntity
Public Interface ISubscriptionClient
Implements IReceiverClient
派生
实现

示例

创建新的 SubscriptionClient

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

注册每次收到消息时都会调用的消息处理程序。

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;
       });

注解

用于 MessageReceiver 高级功能集。

属性

ClientId

获取用于标识此客户端的 ID。 这可用于关联日志和异常。

(继承自 IClientEntity)
IsClosedOrClosing

如果客户端已关闭或关闭,则返回 true。

(继承自 IClientEntity)
OperationTimeout

持续时间过后,单个操作将超时。

(继承自 IClientEntity)
OwnsConnection

如果拥有连接,则返回 true;如果共享连接,则返回 false。

(继承自 IClientEntity)
Path

获取实体路径。

(继承自 IClientEntity)
PrefetchCount

在应用程序使用 Receive 请求消息时和之前,预提取旨在使消息随时可供本地检索,从而加速消息流。 设置非零值预提取预提取消息数。 将值设置为零会关闭预提取。 默认值为 0。

(继承自 IReceiverClient)
ReceiveMode

ReceiveMode获取当前接收器的 。

(继承自 IReceiverClient)
RegisteredPlugins

获取此客户端当前注册的插件的列表。

(继承自 IClientEntity)
ServiceBusConnection

服务总线命名空间的连接对象。

(继承自 IClientEntity)
SubscriptionName

获取订阅的名称。

TopicPath

获取此订阅的主题的路径。

方法

AbandonAsync(String, IDictionary<String,Object>)

Message使用锁令牌放弃 。 这会使消息再次可供处理。

(继承自 IReceiverClient)
AddRuleAsync(RuleDescription)

将规则添加到当前订阅,以筛选从主题到达订阅的消息。

AddRuleAsync(String, Filter)

将规则添加到当前订阅,以筛选从主题到达订阅的消息。

CloseAsync()

关闭客户端。 关闭它打开的连接。

(继承自 IClientEntity)
CompleteAsync(String)

Message使用锁令牌完成 。 这会从队列中删除消息。

(继承自 IReceiverClient)
DeadLetterAsync(String, IDictionary<String,Object>)

将消息移动到死信子队列。

(继承自 IReceiverClient)
DeadLetterAsync(String, String, String)

将消息移动到死信子队列。

(继承自 IReceiverClient)
GetRulesAsync()

获取与订阅关联的所有规则。

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

从实体连续接收消息。 注册消息处理程序并启动新线程以接收消息。 每当接收方收到新消息时,此处理程序 (Func<T1,T2,TResult> 等待) 。

(继承自 IReceiverClient)
RegisterMessageHandler(Func<Message,CancellationToken,Task>, MessageHandlerOptions)

从实体连续接收消息。 注册消息处理程序并启动新线程以接收消息。 每当接收方收到新消息时,此处理程序 (Func<T1,T2,TResult> 等待) 。

(继承自 IReceiverClient)
RegisterPlugin(ServiceBusPlugin)

ServiceBusPlugin注册要用于此客户端的 。

(继承自 IClientEntity)
RegisterSessionHandler(Func<IMessageSession,Message,CancellationToken,Task>, Func<ExceptionReceivedEventArgs,Task>)

从订阅连续接收会话消息。 注册消息处理程序并启动新线程以接收会话消息。 每当订阅客户端收到新消息时,此处理程序 (Func<T1,T2,T3,TResult> 等待) 。

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

从订阅连续接收会话消息。 注册消息处理程序并启动新线程以接收会话消息。 每当订阅客户端收到新消息时,此处理程序 (Func<T1,T2,T3,TResult> 等待) 。

RemoveRuleAsync(String)

删除 由 ruleName标识的订阅上的规则。

UnregisterMessageHandlerAsync(TimeSpan)

如果注册了活动消息处理程序,则从接收方取消注册消息处理程序。 此操作等待正在进行的接收和消息处理操作完成,然后取消注册以前注册的消息处理程序上将来的接收。

(继承自 IReceiverClient)
UnregisterPlugin(String)

取消注册 ServiceBusPlugin

(继承自 IClientEntity)
UnregisterSessionHandlerAsync(TimeSpan)

如果注册了活动会话处理程序,请从接收方取消注册会话处理程序。 此操作等待正在进行的接收和会话处理操作完成,并取消注册之前注册的会话处理程序的未来接收。

适用于