首页 > 解决方案 > 如何访问 ASP.Net Core 控制器方法内外的 IApplicationBuilder 和 IWebHost 实例?

问题描述

我想了解是否可以从 ASP.Net Core 2.x 控制器方法中引用 Microsoft.AspNetCore.Builder.IApplicationBuilder (应用程序)和 Microsoft.AspNetCore.Hosting.IWebHost (主机)实例。而且,如果可以从引用的类库方法中完成相同的操作。

我尝试在控制器构造函数中注入接口,如下所示:

public ResourcesController(IApplicationBuilder app)
{
    ...
}

public ResourcesController(IWebHost host)
{
    ...
}

但它导致以下InvalidOperationExceptions 被抛出:

尝试激活“blablabla.ResourcesController”时无法解析“Microsoft.AspNetCore.Builder.IApplicationBuilder”类型的服务

尝试激活“blablabla.ResourcesController”时无法解析“Microsoft.AspNetCore.Hosting.IWebHost”类型的服务。

我错过了什么?我需要在方法中调用一些扩展方法ConfigureServices吗?

我也可能尝试将实例打包在服务类中并将其注入控制器,但我认为会有比这更好的方法。

我还想知道是否可以在位于主 ASP.Net Core 应用程序引用的单独类库中的类的实例方法中实现相同的事情。

至于我为什么需要这个;老实说,没有什么特别的原因。我只是尝试使用 ASP.Net Core 以更好地理解并遇到这些问题。

标签: c#asp.net-coredependency-injection.net-core

解决方案


推荐阅读