C# Can';t从.Net 5.0 WebApi访问GlobalConfiguration.Configuration
C# Can';t从.Net 5.0 WebApi访问GlobalConfiguration.Configuration,c#,asp.net,autofac,webapi,C#,Asp.net,Autofac,Webapi,GlobalConfiguration.Configuration在新的ASP.NET核心WebApi项目(.NET 5.0)中似乎不可用 复制步骤: 创建一个新的“ASP.NET核心Web Api”项目。(目标框架:.NET5.0,Lang:C#) 将这一行添加到代码的任意位置:var config=GlobalConfiguration.Configuration e、 g.将其添加到Startup.cs: public Startup(IConfiguration configuratio
GlobalConfiguration.Configuration
在新的ASP.NET核心WebApi项目(.NET 5.0)中似乎不可用
复制步骤:
var config=GlobalConfiguration.Configuration代码>
public Startup(IConfiguration configuration)
{
var c = GlobalConfiguration.Configuration; // this line was added
Configuration = configuration;
}
System.Web.Http.GlobalConfiguration
它似乎与Microsoft.AspNet.WebApi.WebHost
Nuget软件包相对应,因此请使用以下工具安装它:System.TypeLoadException
HResult=0x80131522
Message=无法加载类型“System.Web.Routing.RouteTable”
来自程序集“System.Web,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”。
Source=System.Web.Http.WebHost
堆栈跟踪:
在System.Web.Http.GlobalConfiguration.c.b__11_0()上
在System.Lazy`1.ViaFactory(LazyThreadSafetyMode模式)
位于System.Lazy`1.ExecutionAndPublication(LazyHelper ExecutionAndPublication,布尔useDefaultConstructor)
在System.Lazy`1.CreateValue()处
在System.Lazy`1.get_Value()
在System.Web.Http.GlobalConfiguration.get_Configuration()中
在C:\work\AspNetCore5.0\Program.cs中的AspNetCore5.\u 0.Program.Main(字符串[]args)处:第17行
我最终想要实现的…是使用AutoFac作为我的依赖项解析程序(我已经完成了这项工作)。但是,当我创建自己的自定义过滤器时(例如ModelValidationFilter、ResponseFilter、ExceptionFilter),它要求我获得全局配置。配置。建议我获取“标准IIS主机”的GlobalConfiguration.Configuration
,如下所示:
var config=GlobalConfiguration.Configuration代码>
。。。但它显然失败了
我将非常感谢您在这方面的任何帮助或建议。
谢谢 ASP.NET核心与ASP.NET或ASP.NET WebAPI不同,虽然许多东西(如控制器)只需要对端口进行细微调整,但配置和路由却大不相同
由于您的最终目标是将AutoFac安装为依赖项解析程序,请尝试使用AutoFac。感谢您的回复@yaakov(非常感谢!)。“netcoreapp3.1”是否优于“net5.0”?我想使用这个框架,在这个框架中,事情正在朝着这个方向发展。(我还注意到“netcoreapp5.0”甚至还有一个目标——这会比“netcoreapp3.1”更好吗?)。同时,我将按照您的建议处理文档。谢谢是,如果您想要最新版本,请使用net5.0(除非您需要LTS,在这种情况下,请使用netcoreapp3.1或等待net6.0)。netcoreapp5.0名字是net5.0早期开发的一部分,不要使用itThanks@pinkfloydx33!非常感谢@z0mbi3您链接的文档仍然适用于旧的ASP.NET WebAPI,而不是ASP.NET核心。ASP.NET Core对其所有筛选器都具有内置的依赖项注入支持。所以您不需要做任何特殊的事情。@z0MB3 Yaakov已经为您提供了一个如何在ASP.NET Core中使用Autofac的链接。过滤器配置是以标准ASP.NET Core方式完成的(因为ASP.NET Core是高度模块化的,不关心您使用哪个DI框架),如中所述。ASP.NET Core中没有全局配置,因为配置的方式不同。
Install-Package Microsoft.AspNet.WebApi.WebHost -Version 5.2.7
System.TypeLoadException
HResult=0x80131522
Message=Could not load type 'System.Web.Routing.RouteTable'
from assembly 'System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.
Source=System.Web.Http.WebHost
StackTrace:
at System.Web.Http.GlobalConfiguration.<>c.<CreateConfiguration>b__11_0()
at System.Lazy`1.ViaFactory(LazyThreadSafetyMode mode)
at System.Lazy`1.ExecutionAndPublication(LazyHelper executionAndPublication, Boolean useDefaultConstructor)
at System.Lazy`1.CreateValue()
at System.Lazy`1.get_Value()
at System.Web.Http.GlobalConfiguration.get_Configuration()
at AspNetCore5._0.Program.Main(String[] args) in C:\work\AspNetCore5.0\Program.cs:line 17