首页 > 解决方案 > 如何在 MassTransist 上显示总线配置

问题描述

我在 netcore 控制台应用程序上使用 MassTransit 和 Rabbit MQ v5.1.4。

假设我有以下内容:

public MassTransitConfigurator()
{
    bus = Bus.Factory.CreateUsingRabbitMq(sbc =>
    {
        var host = sbc.Host(Settings.Rabbit.Uri, h =>
        {
            h.Username(Settings.Rabbit.User);
            h.Password(Settings.Rabbit.Pass);
        });

        sbc.ReceiveEndpoint(host, Settings.Rabbit.Queue, e =>
        {
            e.Consumer<FooConsumer>();
            e.Consumer<BarConsumer>();
        });

        sbc.ReceiveEndpoint(host, Settings.Rabbit.FaultQueue, e =>
        {
            e.Consumer<FooFaultConsumer>();
            e.Consumer<BarFaultConsumer>();
        });
    });
}

当我调用可以访问bus实例的方法时,我想记录以下内容:

public void StartListening()
{
    bus.Start();
    // What to do here so that we get something like:
    Console.WriteLine($"Listening on: {Settings.Rabbit.Uri}");
    Console.WriteLine($"      Queues: ");
    Console.WriteLine($"           - {Settings.Rabbit.Queue}");
    Console.WriteLine($"           - {Settings.Rabbit.FaultQueue}");
    Console.WriteLine($"      Event Types: ");
    Console.WriteLine($"           - {Foo}");
    Console.WriteLine($"           - {Bar}");
}

但是从日志中获取数据,bus而不是手动将其编码到日志中。

我查看了官方文档,但没有看到类似的内容。


笔记:

标签: c#masstransit

解决方案


您可以将总线配置输出为对象图,您可以使用 JSON.NET 将其转换为 JSON:

http://masstransit-project.com/MassTransit/troubleshooting/show-config.html


推荐阅读