为什么会发生此错误? dotnet核心mvc本地化

时间:2019-02-15 07:30:28

标签: localization asp.net-core-mvc

我正在尝试对.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

2 个答案:

答案 0 :(得分:3)

一个大胆的猜测,因为您从未发布过启动文件,但您是否复制粘贴了并忘记包含此代码段?

Rplus R1 (Rmult (Rplus R1 R1) (Rplus R1 R1))

答案 1 :(得分:0)

所提到的错误表明没有发生注入,即.net核心由于没有任何相应的实现而无法注入服务。如果您尚未复制startup.cs文件的更改,则可能会发生这种情况。 (如果您是手动复制文件的话)