Я впрыскиваю зависимость в методе действия контроллера ASP.NET MVC.Условная инъекция инъекции инъекций
Сценарий: Я хочу использовать интерфейс в действии метода ASP.NET MVC-контроллера. Этот интерфейс реализован двумя классами. Например, модель A и модель B реализуют interfaceA
. Во время выполнения, когда пользователь меняет значение в раскрывающемся списке в соответствии со значением выпадающего зависимостей, инъекция должна определять, следует ли ему вводить modelA или modelB.
Также я не уверен, что это единственное решение, или существуют другие решения? Или заводчик не уверен.
Это не подходит для инъекций зависимостей. Нет простого способа связать результат сбрасывания с контейнером DI. Лучше просто вводить обе и выбирать класс в соответствии с параметром маршрута или URL. –
Спасибо, я думаю, это сработает. Я попробую . Можем ли мы поместить общий логин где-нибудь, а не писать во многих методах действий? Также я забыл упомянуть ModelA и ModelB в разных сборках. Предположим, что при выпадающем значении 1 мне нужно сделать экземпляр modelA else ModelB Как Public ActionResule MehtodName (InterfaceA inter) { // Должен ли я идти с указанием значений маршрута ?? } –
Вы можете зарегистрировать их в своем контейнере DI и ввести их в свой класс контроллера, например. 'class MyController (ModelA a, ModelB b)', а затем сохраните их в 'private readonly', каждый из них сможет их использовать. Или, если у них есть общий интерфейс, вы можете ввести «IEnumerable», а затем выбрать, какой из них использовать на основе некоторых метаданных самой модели. –