Я хочу реализовать автоматическую регистрацию для моих репозиториев, которые следуют этому соглашению:
- Хранилища внедряют
IRepository
- Существует абстрактный класс, который реализует
IRepository
, например: UserRepository
- Фактическая реализация заканчивается именем этого абстрактного класса, например:
EntityFrameworkUserRepository
Я хочу внедрить зависимости, используя Castle, в мои контроллеры.
public LinkService(LinkRepository linkRepository)
{
if (linkRepository == null)
{
throw new ArgumentNullException("linkRepository");
}
this.linkRepository = linkRepository;
}
Как можно сопоставить «компоненты, которые реализуют IRepository
», с «реализациями, которые заканчиваются тем же именем, что и компонент» *
container.Register(Component.For<LinkRepository>().ImplementedBy<EntityFrameworkLinkRepository>())
что-то вроде этого, только авторегистрация, поэтому мне не нужно добавлять сюда все репозитории вручную каждый раз, когда я создаю новый