我正在尝试使用RequestCultureProvider(本质上是在ASP.NET Core 1.1中尝试从用户类中查找当前请求的UI文化)
我在ConfigureServices下的Startup.cs中有以下代码:
services.AddSingleton<IRequestCultureProvider, RequestCultureProvider>();
运行时抛出以下错误:
无法实例化实现类型 'Microsoft.AspNetCore.Localization.RequestCultureProvider'用于服务 输入'Microsoft.AspNetCore.Localization.IRequestCultureProvider
我如何解决这个问题?或者是否有另一种从用户类中获取CurrentUICulture 的方法。
具体例子表示赞赏。
答案 0 :(得分:11)
Microsoft.AspNetCore.Localization.RequestCultureProvider
是一个抽象类,因此不能像这样实例化。
我认为该框架的目的是让您使用Features
而不是Services
:
var requestCultureFeature = context.Features.Get<IRequestCultureFeature>();
与添加设置功能的RequestLocalizationMiddleware
一起使用。
RequestCultureProvider
用于配置RequestLocalizeationMiddleware使用的RequestLocalizationOptions
(使用DI作为IOptions<RequestLocalizationOptions>
),因此它不打算作为服务自行解析