获取 dotnetcore 中的 DI 容器
本文关键字:容器 DI 中的 dotnetcore 获取 | 更新日期: 2023-09-27 17:57:06
我想使用 DI 容器在我的应用程序的启动配置中获取路由的实例,而不是对实例进行硬编码,有没有办法做到这一点?
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory){
loggerFactory.AddConsole(Configuration.GetSection("Logging"));
loggerFactory.AddDebug();
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseBrowserLink();
}
else
{
app.UseExceptionHandler("/Home/Error");
}
app.UseStaticFiles();
app.UseMvc(routes =>
{
routes.MapRoute(
"default",
"{controller=Home}/{action=Index}/{id?}");
// hardcoded dependeny, I'd like to do something like this
// var instance = container.getInstance<LandingPageRouter>();
routes.Routes.Add(new LandingPageRouter(routes, new MyWebRequest()));
});
}
你试过app.ApplicationServices.GetRequiredService<LandingPageRouter>()
吗?
如果这不起作用,则意味着控制器还不是注册服务。