无法实例化实现类型

eat*_*ode 3 .net asp.net-core-mvc asp.net-core

我试图在ASP.NET Core 1.1中使用RequestCultureProvider(本质上是尝试在用户类中查找当前请求的UI文化)

我在ConfigureServices下的Startup.cs中有以下代码:

services.AddSingleton<IRequestCultureProvider, RequestCultureProvider>();
Run Code Online (Sandbox Code Playgroud)

运行时抛出以下错误:

无法为服务类型'Microsoft.AspNetCore.Localization.IRequestCultureProvider实例化实现类型'Microsoft.AspNetCore.Localization.RequestCultureProvider'

我该如何解决这个问题?或者是否有另一种从用户类中获取CurrentUICulture的方法.

具体例子赞赏.

Tim*_*Tim 11

Microsoft.AspNetCore.Localization.RequestCultureProvider 是一个抽象类,所以它不能像这样实例化.

我认为,框架的目的是让你使用FeaturesServices:

var requestCultureFeature = context.Features.Get<IRequestCultureFeature>();
Run Code Online (Sandbox Code Playgroud)

与添加RequestLocalizationMiddleware设置功能相结合.

RequestCultureProvider用于RequestLocalizationOptionsRequestLocalizeationMiddleware 使用的配置(使用DI IOptions<RequestLocalizationOptions>),因此它不能单独作为服务解析