库之间的区别:Microsoft.Azure.EventGrid 和 Azure.Messaging.EventGrid

问题描述

我一直在尝试使用 Azure.Messaging.EventGridEvent.EventGridPublisherClient 将事件发布到 Azure EventGrid 并且效果很好。我刚刚发现 EventGrid 有另一个客户端,即 Microsoft.Azure.EventGrid.EventGridClient

经过调查,库和命名空间都实现了相同的功能,但公开的方法和属性却大不相同,并且处理 Data 的序列化和反序列化的方式也大不相同; Microsoft.Azure.EventGrid.EventGridEvent 直接将 Data 属性公开为 public 属性,而 Azure.Messaging.EventGridEvent 具有 Data 作为 internal 属性并且只公开 {{ 1}} 和 GetData<T>

让两个库做几乎相似的事情让我完全不知道哪一个是正确的库。关于我们何时应该使用一个库而不是另一个库,是否有任何指导方针?使用其中一种有什么好处吗?我尝试查看文档,但无法辨别有关正确使用这两个库的任何信息。

解决方法

Microsoft 正忙于为其 Azure SDK 创建新包。目前,Azure SDK 包的工作方式存在重大差异。为了解决这个问题,他们定义了 new SDK design guidelines,并且他们正在根据这些准则用新的 SDK 替换所有 Azure SDK。

Microsoft.Azure.EventGrid 软件包是稳定的,但并未遵循这些新准则。 Azure.Messaging.EventGrid 包处于预览状态,但确实遵循了指南。根据您的情况,您现在可能想要使用预览库。因此,您可以坚持使用稳定版,并在需要时最终更换。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...