Azure 服务总线 - 如何向消息添加元数据

Azure service bus - how to add metadata to the message

我使用 .net 核心网络应用作为发布者,使用 .net 核心控制台应用作为订阅者。 我能够使用托管身份在这两个系统之间成功传递消息 - 在 Azure 门户中设置。

我的问题是我需要将元数据添加到正在发送的消息中。我该怎么做?

下面是我的发布者代码:

string data = JsonConvert.SerializeObject(payloadEvents);
Message message = new Message(Encoding.UTF8.GetBytes(data));

var tokenProvider = TokenProvider.CreateManagedIdentityTokenProvider();

TopicClient sendClient = new TopicClient(_serviceBusNamespace, _topicName, tokenProvider, retryPolicy: null);

await sendClient.SendAsync(message);

Message object has a property called UserProperties 可用于为该消息设置自定义元数据。

类似于:

string data = JsonConvert.SerializeObject(payloadEvents);
Message message = new Message(Encoding.UTF8.GetBytes(data));
message.UserProperties.Add("key1", "value1");
message.UserProperties.Add("key2", "value2");

var tokenProvider = TokenProvider.CreateManagedIdentityTokenProvider();

TopicClient sendClient = new TopicClient(_serviceBusNamespace, _topicName, tokenProvider, retryPolicy: null);

await sendClient.SendAsync(message);