У меня есть унаследованное приложение, в качестве точки входа которого используется WCF, и интерфейс ввода зависимостей создан в проекте .net framework 4.5.1. я пытаюсь заменить слой wcf ядром asp.net, и когда я пытаюсь внедрить зависимости, используя DI ядра по умолчанию для asp.net, я получаю
Исключение: InvalidOperationException - Текущий тип, xxxx, является интерфейсом и не может быть создан. Вам не хватает отображения типов?
Я пробовал это с ядром Asp.net 2.2 с целевой платформой 4.6.1, а также с ядром asp.net 2.1, где целевой платформой установлено .net ядро 2.1
моя настройка DI в ядре asp.net выглядит следующим образом
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
services.AddSingleton<ITradeBusinessService, TradeBusinessService>();
services.AddSingleton<IUnityContainer, UnityContainer>();
services.AddSingleton<ICommonDataRepository, CommonDataRepository>();
}
эта служба TradeBusinessService принимает IUnityContainer в конструкторе.
public TradeBusinessService(IUnityContainer objectContainer)
{
container = objectContainer;
commonRepository = container.Resolve<ICommonDataRepository>();
и когда я пытаюсь разрешить ICommonDataRepository, я получаю ошибку выше.
ICommonDataRepository в проекте, нацеленном на 4.5.1
есть идеи, что я здесь делаю не так?