Yur*_*iyP 114 .net dependency-injection asp.net-core
我开始将我的asp.net核心RC1项目转换为RC2,并面临现在IHttpContextAccessor无法解决的问题.
为简单起见,我使用Visual Studio模板创建了新的ASP.NET RC2项目ASP.NET Core Web Application (.Net Framework).比我添加了HomeController的构造函数,为我创建了哪个模板.
public HomeController(IHttpContextAccessor accessor)
{
}
在我开始申请后,我收到下一个错误:
InvalidOperationException:尝试激活"TestNewCore.Controllers.HomeController"时,无法解析类型"Microsoft.AspNetCore.Http.IHttpContextAccessor"的服务.Microsoft.Extensions.Internal.ActivatorUtilities.GetService(IServiceProvider sp,Type type,Type requiredBy,Boolean isDefaultParameterRequired)
在我的实际应用中,我需要解决IHttpContextAccessor我自己的服务类获得访问_contextAccessor.HttpContext.Authentication和_contextAccessor.HttpContext.User.在RC1中,Everething运行良好.那么怎么能想到RC2呢?
Joe*_*tte 178
默认情况下,IHttpContextAccessor不再连接,您必须自己注册
services.TryAddSingleton<IHttpContextAccessor, HttpContextAccessor>();
Cal*_*alC 93
从.NET Core 2.1开始,添加了一个扩展方法以正确注册IHttpContextAccessor为单例.请参阅添加帮助程序以注册IHttpContextAccessor#947.只需在您的ConfigureServices()方法中添加如下:
services.AddHttpContextAccessor();
这相当于:
services.TryAddSingleton<IHttpContextAccessor, HttpContextAccessor>();
小智 17
对于 .NET Core 6.0,在类中添加以下内容Program.cs:
builder.Services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>(); 
Sha*_*med 12
对于.NET Core 7.0,在Program.cs类中添加以下代码:
builder.Services.AddHttpContextAccessor();
这相当于:
services.TryAddSingleton<IHttpContextAccessor, HttpContextAccessor>();
对于任何来到这里并进行注入HttpContextAccessor而不是IHttpContextAccessor在要使用它的类的构造函数中进行注入的人。
抛出同样的错误,内部异常将指向有问题的类。
| 归档时间: | 
 | 
| 查看次数: | 53291 次 | 
| 最近记录: |