【发布时间】:2021-02-24 10:36:32
【问题描述】:
我用 masstransit 创建了一个 receiveEndpoint 并像这样使用它:
var busControl = Bus.Factory.CreateUsingRabbitMq(cfg =>
{
cfg.ReceiveEndpoint("my-endpoint", x =>
{
x.Consumer<MyEndpointConsumer>();
});
}
这是我的班级 MyEndpointConsumer :
class MyEndpointConsumer : IConsumer<IMyEndpoint>
{
public Task Consume(ConsumeContext<IMyEndpoint> context)
{
Console.WriteLine("MyEndpointConsumer");
}
}
MassTransit 创建:
- 一个队列:“我的端点”
- 第一次交换:“my-endpoint”
- 第二次交换:“IMyEndpoint”
我想禁用第二次交换的创建。 MassTransit 文档说明消费者拓扑基于“发布拓扑”(MassTransit documentation):
消费拓扑使用发布拓扑来确保消息类型的交换/主题命名一致。
所以我尝试在我的界面“IMyEndpoint”上更改发布拓扑:
cfg.Publish<IMyEndpoint>(x =>
{
x.Exclude = true;
});
但没什么变化,我试试:
[ExcludeFromTopology]
publiv interface IMyEndpoint
也没有任何变化。
有什么想法来进行这种交流创作吗?
感谢您的帮助。
【问题讨论】:
标签: c# .net-core rabbitmq masstransit