我正在 ASP.NET Core (RC2) 中开发一个 Tag Helper,在呈现 Tag Helper 时,我需要访问 Request 对象,因为我需要弄清楚请求的 URL 是什么。
因此,似乎在 ASP.NET Core 中访问 Request 对象的正确方法是从HttpContext
,并获得HttpContext
我需要注入IHttpContextAccessor
到我的 Tag Helper 中的。
所以我尝试了,但是在运行时抛出了以下异常:
InvalidOperationException:尝试激活“Auth0.AspNetCore.Mvc.TagHelpers.LockTagHelper”时,无法解析“Microsoft.AspNetCore.Http.IHttpContextAccessor”类型的服务。
有什么原因我不能注入IHttpContextAccessor
到我的 Tag Helper 中吗?
另外,是否有另一种方法可以访问 Tag Helper 中的 Request 对象?
编辑
似乎问题在于,自从最新的候选版本以来,您必须手动配置 DI 来处理 IHttpContextAccessor。所以ConfigureServices
你必须打电话给
services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
我相信在早期的测试版中这是自动配置的......
问题是这是一个库,我不希望用户在他们的应用程序中配置它以使我的库正常工作,因此任何其他更可靠的访问 Request 对象的方法仍然会受到赞赏:)