首先,请原谅我的英语,非常糟糕。我将 MassTransit 与 Azure 服务总线一起用于微服务之间的异步通信。根据它们自己的定义,为了避免它们之间产生依赖关系,不同微服务之间发送的消息被定义在每个微服务中,即它们是不同命名空间的一部分。MassTransit 的自动管理导致队列和主题按对象类型进行管理,从而阻止消费消息的微服务接收微服务发布者发送的消息。同样的事情发生在同一个命名空间中具有相同属性但具有不同类名的两个类。
有没有办法解决这个问题?我想到的选项是:
我留下一个例子,希望可以帮助您理解问题。
//FIRST PROGRAM - MESSAGE CONSUMER
namespace Consumer
{
public class Example
{
public string PropOne { get; set; }
public string PropTwo { get; set; }
}
public class ExampleConsumer :
IConsumer<Example>
{
public List<Example> ConsumedTestObjectList { get; } = new List<Example>();
//THIS METHOD NEVER CALL !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
public Task Consume(ConsumeContext<ExampleConsumer> context)
{
ConsumedTestObjectList.Add(context.Message);
return Task.CompletedTask;
}
}
public class ConsumerProgram
{
public static void Main()
{
var bus = …
Run Code Online (Sandbox Code Playgroud)