在 Console .Net Core 1.1 应用程序中使用 .resx 文件
Using .resx files in Console .Net Core 1.1 application
我试图检查一些很酷的 .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();
你必须安装这个包
“Microsoft.Extensions.Localization”,那么您上面的代码将按您的意愿工作。它已验证 uisng .net core 2.0 和控制台应用程序
我试图检查一些很酷的 .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();
你必须安装这个包 “Microsoft.Extensions.Localization”,那么您上面的代码将按您的意愿工作。它已验证 uisng .net core 2.0 和控制台应用程序