问题描述
我一直在尝试使用 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 包处于预览状态,但确实遵循了指南。根据您的情况,您现在可能想要使用预览库。因此,您可以坚持使用稳定版,并在需要时最终更换。