Регистрация типов по базовому типу и разрешение во время выполнения с помощью Autofac

1

У меня есть следующая настройка:

public interface IServiceBase {}

public interface IService1: IServiceBase {}
public interface IService2: IServiceBase {}
// ... Snip lots of lines
public interface IService999: IServiceBase {}

public interface IConnection { T GetService<T>() where T: IServiceBase; }

IConnection зарегистрирована в Autofac. Вызов GetService() на нем будет динамически реализовывать данный интерфейс и возвращать экземпляр.

Теперь я хотел бы сделать некоторую родовую регистрацию для всех IServiceBase -derived. Я не хочу регистрировать каждый IServiceX вручную, и я не хочу выполнять сборочное сканирование (хотя я предполагаю, что это вариант).

В не-действительно-правовом коде это то, что я хочу:

ContainerBuilder.Register<IServiceBase>(x=> x.Resolve<IConnection>().GetService);

Это возможно?

Теги:
asp.net-mvc
autofac

1 ответ

0

Похоже, что мне нужно IRegistrationSource особенность Autofac.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню