Tim*_*uri 6 .net c# azure azure-queues
几个月前(当我不熟悉Azure Queues和SDK工具时)我用Google搜索"我该怎么做"和"我该怎么做"......这就是我今天所处的位置:
我正在使用QueueClient(Microsoft.ServiceBus.Messaging - Microsoft.ServiceBus.dll)从Azure队列接收邮件.
在我的同一个程序中,我也使用MessageSender(来自相同的命名空间和dll)将消息发送到Azure队列.
我的程序必须跟踪a Dictionary<string, QueueClient>和a Dictionary<string, MessageSender>- 这比它应该更复杂.
现在我对Azure SDK更熟悉了......我意识到这个QueueClient类可以发送和接收 ......那么为什么我要跟踪2个对象,而第一个可以同时执行这两个对象?
有没有理由使用MessageSender该类而不是QueueClient类?
如果我需要发送和接收,我不应该只使用该QueueClient课程吗?
Abh*_*Lal 10
我们已经暴露了两个不同的对象,以支持对称性和易用性.如您所知,我们有主题/订阅以及队列.如果您只是使用队列,那么您可以创建QueueClient并实现所需的所有操作.但是,您后来想要转向主题/订阅发布 - 订阅模型.针对通用MessageSender和MessageReciever进行编程将允许您更改基础拓扑,而不必修改任何代码(只是地址URL /名称).因此,您可以编写可在Queue以及主题/订阅方案中使用的代码.
好的 - 我应该首先反映DLL ...找到答案.
QueueClient是一个只有一个MessageSender对象和一个MessageReceiver对象的类.所以答案是"不,你不应该有两个对象来做同样的事情".
public void Send(BrokeredMessage message)
{
this.ThrowIfSenderNull("Send");
this.InternalSender.Send(message);
}
Run Code Online (Sandbox Code Playgroud)
上面的"InternalSender"对象是类型MessageSender.
| 归档时间: |
|
| 查看次数: |
2156 次 |
| 最近记录: |