C# 使用CAP时如何设置RabbitMQ队列前缀

C# 使用CAP时如何设置RabbitMQ队列前缀,c#,.net-core,rabbitmq,C#,.net Core,Rabbitmq,我们正在使用RabbitMQ。我遵循了与其他CAP代码相同的设置,但出于某种原因,我在队列名称上获得了“CAP.queue”前缀 我们所有其他队列的名称如下: services.AddCap(options => { options.DefaultGroup = Configuration["SubscriptionClientName"]; } [NameInAppSettings].v1 出于某种原因,我的新队列如下所示: services.AddCap(options =&

我们正在使用RabbitMQ。我遵循了与其他CAP代码相同的设置,但出于某种原因,我在队列名称上获得了“CAP.queue”前缀

我们所有其他队列的名称如下:

services.AddCap(options =>
{
    options.DefaultGroup = Configuration["SubscriptionClientName"];
}
[NameInAppSettings].v1

出于某种原因,我的新队列如下所示:

services.AddCap(options =>
{
    options.DefaultGroup = Configuration["SubscriptionClientName"];
}
cap.queue。[NameInAppSettings].v1

默认组设置如下:

services.AddCap(options =>
{
    options.DefaultGroup = Configuration["SubscriptionClientName"];
}

我已经确认appsettings设置存在,我们正在执行上面的代码行。在执行上述行之前,
options.DefaultGroup
具有“cap.queue”前缀。执行该行之后,它只是“[NameInAppSettings].v1”。那么,当在RMQ仪表板中查看时,为什么队列名称有“cap.queue”前缀呢?我在哪里可以设置它?

看起来有两种设置可以控制这种行为

首先,需要设置
DefaultGroup

其次,还需要设置
ExchangeName

这些价值观只需要存在。如果缺少,则将创建默认的交换/队列

这两种情况如下所示:

    services.AddCap(x =>
    {
        // other settings here

        x.DefaultGroup = "Sandbox";
        
        x.UseRabbitMQ(conf =>
        {
            conf.ExchangeName = "SandboxEventBus";
            conf.ConnectionFactoryOptions = x =>
            {
                x.Uri = BuildRabbitUri();
            };
        });
    });
为了完整起见,这里是
BuildRabbitUri()