我正在尝试对.Net Core 2.2 MVC网站进行本地化,并且创建了一个测试项目,并复制并粘贴了以下说明:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/localization?view=aspnetcore-2.2
之后,我尝试获取本地化的字符串并继续访问www ... / Info / TestLoc
InfoController:
public class InfoController : Controller
{
private readonly IStringLocalizer<InfoController> _localizer;
private readonly IStringLocalizer<SharedResource> _sharedLocalizer;
public InfoController(IStringLocalizer<InfoController> localizer,
IStringLocalizer<SharedResource> sharedLocalizer)
{
_localizer = localizer;
_sharedLocalizer = sharedLocalizer;
}
public string TestLoc()
{
string msg = "Shared resx: " + _sharedLocalizer["Hello!"] +
" Info resx " + _localizer["Hello!"];
return msg;
}
}
但是我遇到了这个错误:
处理请求时发生未处理的异常。 InvalidOperationException:尝试激活“ Localization.Controllers.InfoController”时,无法解析类型为“ Microsoft.Extensions.Localization.IStringLocalizer`1 [Localization.Controllers.InfoController]”的服务。
现在,我搜索了该错误,并发现当您不分配类型时会发生此错误。我正在这样做。
我现在真的很无能为力,因为我只复制并粘贴了整个Microsoft教程,因此无法使用。
我希望你们能理解我的问题,希望您能帮助我。
在此先感谢您抽出宝贵时间阅读本文并为我提供帮助。
问候Nico又名Myridor
答案 0 :(得分:3)
一个大胆的猜测,因为您从未发布过启动文件,但您是否复制粘贴了并忘记包含此代码段?
Rplus R1 (Rmult (Rplus R1 R1) (Rplus R1 R1))
答案 1 :(得分:0)
所提到的错误表明没有发生注入,即.net核心由于没有任何相应的实现而无法注入服务。如果您尚未复制startup.cs文件的更改,则可能会发生这种情况。 (如果您是手动复制文件的话)