Регистрация открытого типа c в Autofac - PullRequest
0 голосов
/ 28 февраля 2020

По разным причинам нам необходимо использовать Autofa c в одной из наших библиотек. В настоящее время мы используем Structuremap, и у нас возникают проблемы с преобразованием следующих данных в Autofa c

For(typeof(Data.New.IRepository<>)).Use(typeof(Data.New.Repository<>));

. Мы пытаемся выполнить следующие действия в Autofa c

builder.RegisterType(typeof(Repository<>)).As(typeof(IRepository<>));

и получаем следующую ошибку

System.ArgumentException: тип репозитория 1[T]' is not assignable to service 'IRepository 1 '.'

1 Ответ

0 голосов
/ 28 февраля 2020

Существует специальный метод RegisterGeneric в Autofa c для открытых генериков:

builder.RegisterGeneric(typeof(Repository<>))
       .As(typeof(IRepository<>))
       .InstancePerLifetimeScope();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...