Как зарегистрировать много для открытых дженериков в Autofac

я новичок вAutofac (не дляDI). Вот ситуация:

У меня есть эти интерфейсы:

public interface IQuery : IQuery { }

public interface IQueryHandler where TQuery : IQuery {
    TResult Handle(TQuery query);
}

и их реализация в моем решении очень большая:

class GetPersonQuery : IQuery { }
class GetPersonQueryHandler : IQueryHandler { }

class GetArticleQuery : IQuery { }
class GetArticleQueryHandler : IQueryHandler { }

class GetSomethingQuery : IQuery { }
class GetSomethingQueryHandler : IQueryHandler { }

и так далее. Я'В настоящее время я регистрирую их так:

builder.RegisterType()
    .As();

builder.RegisterType()
    .As();

builder.RegisterType()
    .As();

// blah blah blah

Как видите, у меня много одинаковых регистраций. ВSimpleInjector (который я использовал раньше), я мог бы зарегистрировать их всех одной строкой:

container.RegisterManyForOpenGeneric(
    typeof(IQueryHandler),
    AppDomain.CurrentDomain.GetAssemblies());

Можно ли сделать это вAutofac?

Ответы на вопрос(1)

Ваш ответ на вопрос