C# 如何注册IFilter<;PublishContext<;T>&燃气轮机;使用Autofac extensions时在MassTransit中

C# 如何注册IFilter<;PublishContext<;T>&燃气轮机;使用Autofac extensions时在MassTransit中,c#,masstransit,C#,Masstransit,我正在使用Autofac扩展,找不到如何注册具有依赖项的IFilter。文档建议使用UsePublishFilter(typeof(TFilter),context),但是从哪里获取上下文呢 public static ContainerBuilder RegisterMassTransit(this ContainerBuilder builder, Func<IBusRegistrationContext, IBusControl> createBusFunc, Assembly

我正在使用Autofac扩展,找不到如何注册具有依赖项的
IFilter
。文档建议使用
UsePublishFilter(typeof(TFilter),context)
,但是从哪里获取
上下文呢

public static ContainerBuilder RegisterMassTransit(this ContainerBuilder builder, Func<IBusRegistrationContext, IBusControl> createBusFunc, Assembly consumerAssembly = null)
{
    builder.AddMassTransit(cfg =>
    {
        if (consumerAssembly != null)
        {
            cfg.AddConsumers(consumerAssembly);
        }

        cfg.AddBus(createBusFunc);
    });

    return builder;
}

public void ConfigureContainer(ContainerBuilder builder)
{
    builder
        .RegisterMassTransit(CreateBus, Assembly.GetExecutingAssembly())
        .RegisterTelemetryCollector();
}

private IBusControl CreateBus(IBusRegistrationContext registrationContext)
{
    return Bus.Factory.CreateUsingAzureServiceBus(
        cfg =>
        {
            cfg.Host(_serviceBusConnectionString);

            cfg.UsePublishFilter(typeof(MyFilterWithDependencies<>), ????);
        });
}

您应该将
registrationContext
作为第二个参数传递。

没错,我刚刚意识到我的问题是不明确,因为两个静态扩展类提供了完全相同的重载,所以我必须直接调用Autofac one
AutofacFilterExtensions.UsePublishFilter(cfg,typeof(ChaosEngineFilter),注册背景)
public static void UsePublishFilter(this IPublishPipelineConfigurator configurator, Type filterType, ILifetimeScopeProvider lifetimeScopeProvider)