Уверен, что я что-то пропустил.Как передать параметр конструктору с помощью Autofac
Я пытаюсь преобразовать код не DI, чтобы использовать autofac. У меня есть класс, который говорит об оборудовании, которое берет IP-адрес и абстрагирует интерфейс. У меня есть класс высокого уровня, который настраивает и управляет оборудованием. Я пытаюсь выяснить, как я могу создать несколько экземпляров этого класса, не передавая копию контейнера DI.
string FirstIP, SecondIP;
//Set values from config/user etc.
var FirstDevice = new HighLevelIF(new LowLevelIF(FirstIP));
var SecondDevice = new HighLevelIF(new LowLevelIF(SecondIP));
Если мне нужен только один объект устройства, кажется довольно тривиальным подключить его к Autofac. Но для двух экземпляров с разными адресами, которые я буду знать только во время выполнения, я не вижу способа сделать это с помощью autofac. Только так, что я могу видеть это написать LowLevelIF завод, который я прохожу к методу, который я тогда инстанцирования
var FirstDevice = new HighLevelIFFactory.Create
(LowLevelIFFactory.Create
(FirstIP));
Адрес настраивается во время выполнения и может меняться. Мне нужно, чтобы код мог динамически создавать интерфейс. Поэтому мой вопрос, я не вижу пути вокруг этого без использования фабрики. – Spence
Я думаю, что это решение. Вы создаете интерфейс с фабрики с помощью метода, который принимает адрес времени выполнения. Почему бы вам не сделать это? –