Как зарегистрировать много для открытых дженериков в 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?