如何忽略大众交通发布中的命名空间

问题描述 投票:0回答:2

我使用 RabbitMQ 和 Masstransit 进行消息传递。我在 ASP.NET Core 中有 2 个应用程序。其中之一是ConsumerApp,另一个是ProducerApp。他们没有共享模型项目,每个项目都有自己的模型。例如,它们每个都有订单模型,它们是相同的。当我从ProducerApp发送消息时,它变成了ProducerApp.Models:Order,所以我无法消费它,因为Consumer的Order模型命名为ConsumerApp.Models:Order。如何忽略命名空间?

c# asp.net asp.net-core rabbitmq masstransit
2个回答
2
投票

你不能,文档中明确定义了完整的类型名称(包括命名空间)用于消费消息。

这本质上是这个问题这个问题的重复。


0
投票

如果我理解正确,您的意思是您需要忽略绑定到交换的消息名称中的名称空间 如果您想要发布可以在不同项目中使用相同名称定义的消息,您可以使用此方法:

[EntityName(nameof(BrokeUpEvent))]
public record BrokeUpEvent(DateOnly date,Timespan time);

EntityName
属性将设置绑定到交换到“BrokUpEvent”的实体的名称,以及何时您将在另一个项目中创建其他类,以便正确使用

© www.soinside.com 2019 - 2024. All rights reserved.