Куда мне поместить вызов конструктора для моего нового движка представления?

Я создал свой собственный RazorViewEngine и добавляю следующее в вызов startup.configureservices.

        services.AddSingleton<IRazorViewEngine, RoleBasedRazorViewEngine>();
        services.AddMvc();

Мой новый viewengine вызывается, как и ожидалось, но я хочу добавить значения в конструктор для некоторого элемента управления представлением "RoleBase". Логика находит представление на основе предоставленной роли или, если не найдено, переходит к представлению по умолчанию.

Где вызывается конструктор, чтобы я мог предоставить ему список ролей для использования при поиске.

Альтернативный метод также приемлем.

1 ответ

Я нашел ответ через другие поиски и выяснил это. Функции Startup.cs аналогичны внедрению зависимостей в единство, где они размещают версии интерфейса по умолчанию. Например, если у вас есть интерфейс IDataManager, который по умолчанию вы хотите использовать MyDataManager в качестве класса, реализующего интерфейс, вы можете сделать следующее:

services.AddTransient<IDataManager, MyDataManager>();

Просто так же, как это делало единство. Иногда мне нужно, чтобы это было более четко изложено. Я все еще исследую другие сервисы. Добавляйте ***** методы, но переходный процесс, кажется, является ловушкой для вещей, специально не прописанных с другими сервисами. Добавляйте методы.

Другие вопросы по тегам