如何在主机中将EntityNameAttribute更改为自定义NameAttribute(RabbitMq)

8aqjt8rx  于 2023-01-20  发布在  RabbitMQ
关注(0)|答案(1)|浏览(192)

在我的应用程序中,我使用不同的接口来处理消息。2为了避免多个实现并减少对同一DTO的维护,我想使用一个自定义属性来处理主传输部件的Exchange名称。3我还想减少这些公共软件部件中对主传输部件的依赖性。
所以我的问题是“如何在Masstransit.(RabbitMq)中将EntityNameAttribute更改为自定义NameAttribute“
我已尝试覆盖MessageTopology的EntityNameFormatter。

cfg.MessageTopology.SetEntityNameFormatter(new CustomExchangeNameFormatter(cfg.MessageTopology.EntityNameFormatter));

如果应用程序发布消息,则会发生错误。

_asyncApi.PublishMessage<CustomMessage>(new CustomMessage(){Content = "TestMessage"});

... RabbitMQ.客户端.异常.操作中断异常:AMQP操作已中断:AMQP关闭原因,由对等体发起,代码=403,文本=“ACCESS_REFUSED -不允许在默认交换上执行操作”,类ID =40,方法ID =10...

yftpprvb

yftpprvb1#

如果要我猜的话,您的自定义实体名格式化程序返回的是一个空的实体名,这完全是基于错误消息中说默认交换为""的事实。

相关问题