Простой инжектор ( SI ) Документация здесь показывает, как интегрировать SI с ядром ASP.NET:
private void IntegrateSimpleInjector(IServiceCollection services) {
container.Options.DefaultScopedLifestyle = new AsyncScopedLifestyle();
services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
services.AddSingleton<IControllerActivator>(
new SimpleInjectorControllerActivator(container));
services.AddSingleton<IViewComponentActivator>(
new SimpleInjectorViewComponentActivator(container));
services.EnableSimpleInjectorCrossWiring(container);
services.UseSimpleInjectorAspNetRequestScoping(container);
}
Этот пример кода показывает, как интегрировать SI с контроллерами и ViewComponents (модель MVC ), с которыми мы работали до Razor Pages .
Однако эта функция не интегрирует SI в Razor Pages , новую функцию, выпущенную в ASP.NET Core 2.0. В основном это модель MVVM (не совсем).
Таким образом, страницы Razor имеют по одному PageModel
для каждого представления, и это похоже на контроллер. И я хотел бы добавить в конструктор этого класса, используя SI.