MassTransit 为 Azure 服务总线发布自定义属性
MassTransit publishing custom properties for Azure Service Bus
有谁知道如何通过 MassTransit 发布将 ApplicationProperties
(又名自定义属性)发布到 Azure 服务总线?
在原生ASB客户端库中,我们可以这样做...
var message = new ServiceBusMessage(msg);
message.ApplicationProperties.Add("foo", "bar");
但我看不到如何在 MassTransit 中执行此操作。查看 Publish
方法的重载,我能看到的最接近的是 headers - 即...
await _bus.Publish(new SomeEvent { SomeProperty = "some-value" },
context =>
{
context.Headers.Set("MyCustomProperty", "my-custom-value");
},
cancellationToken);
更新:我写了上面的片段,作为我正在做的事情的一个例子——但它不是一个精确的副本。在看到 Chris 的回答后发现 - 上面的片段 确实 有效 - 但在我的实际代码中,“some-value” 实际上是一个布尔值 - 这就是问题所在!
但这只是将 headers 添加到 MT 消息信封 - 而不是 ASB 自定义属性。
即。在我的第一个示例中,这是我在 Azure 服务总线资源管理器中看到字段的位置...
有谁知道如何通过 MassTransit 发布将 ApplicationProperties
(又名自定义属性)发布到 Azure 服务总线?
在原生ASB客户端库中,我们可以这样做...
var message = new ServiceBusMessage(msg);
message.ApplicationProperties.Add("foo", "bar");
但我看不到如何在 MassTransit 中执行此操作。查看 Publish
方法的重载,我能看到的最接近的是 headers - 即...
await _bus.Publish(new SomeEvent { SomeProperty = "some-value" },
context =>
{
context.Headers.Set("MyCustomProperty", "my-custom-value");
},
cancellationToken);
更新:我写了上面的片段,作为我正在做的事情的一个例子——但它不是一个精确的副本。在看到 Chris 的回答后发现 - 上面的片段 确实 有效 - 但在我的实际代码中,“some-value” 实际上是一个布尔值 - 这就是问题所在!
但这只是将 headers 添加到 MT 消息信封 - 而不是 ASB 自定义属性。
即。在我的第一个示例中,这是我在 Azure 服务总线资源管理器中看到字段的位置...