簡體   English   中英

MassTransit 發布 Azure 服務總線的自定義屬性

[英]MassTransit publishing custom properties for Azure Service Bus

有誰知道我如何通過 MassTransit Publish 將ApplicationProperties (又名自定義屬性)發布到 Azure 服務總線?

在本機 ASB 客戶端庫中,我們可以這樣做......

var message = new ServiceBusMessage(msg);
message.ApplicationProperties.Add("foo", "bar");

但我看不到如何在 MassTransit 中做到這一點。 查看Publish方法的重載,我能看到的最接近的是標題 - 即......

await _bus.Publish(new SomeEvent { SomeProperty = "some-value" },
    context =>
    {
        context.Headers.Set("MyCustomProperty", "my-custom-value");
    },
cancellationToken);

更新:我寫了上面的代碼片段,作為我正在做的事情的一個例子——但它不是一個精確的副本。 結果是在看到 Chris 的回答后——上面的代碼片段確實有效——但在我的實際代碼中,“some-value”實際上是 boolean——這就是問題所在!

但這只是將標頭添加到 MT 消息信封中,而不是 ASB 自定義屬性。

IE。 在我的第一個示例中,這是我在 Azure 服務總線資源管理器中看到該字段的位置...

在此處輸入圖像描述

如果 header 是字符串,或者可以使用內置的IFormatter類型呈現為字符串,則應將其復制到ApplicationProperties集合。

例如,使用:

await endpoint.Send(new PingMessage(), context =>
{
    context.Headers.Set("Easy-Header", "Easy-Value");
});

生成 header,如下所示:

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM