【问题标题】:Using .resx files in Console .Net Core 1.1 application在 Console .Net Core 1.1 应用程序中使用 .resx 文件
【发布时间】:2017-08-12 16:28:24
【问题描述】:

我试图检查一些很酷的 .Net Core 1.1 功能,但在此过程中我遇到了一个问题。

我尝试创建一个简单的 .NetCore 控制台应用程序

我还在根目录中创建了两个简单的 .resx 资源文件,其中包含一个字符串资源。

我让控制台加载资源,加载成功。

当我更改 CultureInfo 并再次加载字符串时。

我预计会加载本地化字符串,但控制台显示相同的(英文)默认资源

我做错了吗?我预计,本地化应该像以前版本的 .NET 一样工作,但它没有。

我的示例代码如下:

        //default string loaded
        Console.WriteLine(AppResource.resourseText);
        Console.ReadLine();

        //changing CultureInfo
        CultureInfo.CurrentCulture = new CultureInfo("cs");
        CultureInfo.CurrentUICulture = new CultureInfo("cs");
        CultureInfo cul = new CultureInfo("cs");

        //loading the localized string 3 different ways
        Console.WriteLine(AppResource.resourseText);
        Console.WriteLine(AppResource.ResourceManager.GetString("resourseText"));
        Console.WriteLine(AppResource.ResourceManager.GetString("resourseText", cul));

        Console.ReadLine();

【问题讨论】:

  • Visual Studio 的版本是多少?也许你正在点击这个bug。我用最新的 VS 2017 做了一个快速测试,它成功了。
  • 我已将 VS 2017 更新到最新版本,但错误仍然存​​在
  • 如何加载资源文件?可以分享一下项目吗?
  • 资源设置为“嵌入式资源”。这里还发布了测试项目link
  • 您的 cs 资源文件名有一个小错字。 AppResourse.cs.resx。希望这会有所帮助。

标签: .net-core console-application asp.net-core-localization


【解决方案1】:

你必须安装这个包 “Microsoft.Extensions.Localization”,那么您上面的代码将按您的意愿工作。它已经验证了 uisng .net core 2.0 和控制台应用程序

【讨论】:

    猜你喜欢
    • 2022-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多