Я пытаюсь настроить простой . NET Core 3.1 проект, который использует Autofa c 5 Io C Контейнер .
Я добавил ссылку на последнюю Autofa c .Configuration 5.0.0 package .
Я создал интерфейс, реализацию и тестовое приложение с простой JSON конфигурацией (следуя этому руководству ):
{
"components": [
{
"type": "Implementations.ImplementationN, Implementations",
"services": [
{
"type": "Interfaces.InterfaceN, Interfaces"
}
]
}
]
}
Я использую следующий код (согласно тому же руководству):
using Interfaces;
using Autofac;
using Autofac.Configuration;
using Microsoft.Extensions.Configuration;
using System;
------------------------
var config = new ConfigurationBuilder();
config.AddJsonFile("config.json");
var module = new ConfigurationModule(config.Build());
var builder = new ContainerBuilder();
builder.RegisterModule(module);
var container = builder.Build();
------------------------
Но я получаю System.InvalidOperationException :
Тип «Реализации. РеализацияN, Реализации» не найден. Может потребоваться квалификация сборки, например, «MyType, MyAssembly»
Я загрузил свой код в GitHub . Любая помощь приветствуется.
PS Visual Studio 2019 16.4.5 Enterprise, Windows 10 1909 x64 Professional
ОБНОВЛЕНИЕ: Чтобы уточнить больше - моя конечная цель - иметь Interfaces.dll без специальных ссылок, Implementations.dll со ссылкой ТОЛЬКО Interfaces.dll и Test.exe со ссылкой ТОЛЬКО Interfaces.dll (и, конечно, пакет Autofa c). Я ожидаю, что Autofa c загрузит указанный класс c из указанной сборки c (которая указана в config. json) через Reflection. Это было возможно с Unity Container , и я ожидал добиться того же с Autofa c Io C.
Еще раз: Мне нужен подход без ЛЮБОГО проекта, ссылающегося на Implementations.dll, я должен быть в состоянии изменить конкретную c реализацию (через изменение config. json) без перекомпиляции.