从.NET Core 3.1 WinForms中的资源文件中检索字符串值(需要简单的示例)

我已经看了很多遍,发现了许多复杂的例子。真的,我只需要从资源文件中读取一个字符串即可。我的旧代码(.NET Core之前的版本)不再起作用。有人可以给我举个简单的例子吗?

iCMS 回答:从.NET Core 3.1 WinForms中的资源文件中检索字符串值(需要简单的示例)

我还没有亲自在.NET Core中处理资源文件,但看起来确实仍然支持它们。我发现了这篇文章:Globalization and localization in ASP.NET Core链接到sample project

它看起来似乎很复杂,但最终如果我们将其分解的话,很有希望。如果您看一下该代码,那么重要的事情是:

startup.cs中,他们添加了本地化支持:

...

services.AddLocalization(options => options.ResourcesPath = "Resources");

services.AddMvc()
    .AddViewLocalization(LanguageViewLocationExpanderFormat.Suffix)
    .AddDataAnnotationsLocalization();

...

services.Configure<RequestLocalizationOptions>(options =>
{
    var supportedCultures = new [] { "en-US","fr" };
    options.SetDefaultCulture(supportedCultures[0])
        .AddSupportedCultures(supportedCultures)
        .AddSupportedUICultures(supportedCultures);
});

在控制器中,他们通过依赖注入(例如HomeController.cs)获得服务:

private readonly IStringLocalizer<HomeController> _localizer;

public HomeController(IStringLocalizer<HomeController> localizer)
{
    _localizer = localizer;
}

他们从那里在操作中使用它:

public IActionResult About()
{
    ViewData["Message"] = _localizer["Your application description page."];

    return View();
}

或者在View中:

@using Microsoft.AspNetCore.Mvc.Localization

@inject IViewLocalizer Localizer

@{
    ViewData["Title"] = Localizer["About"];
}

(在View中使用它可能是一种更好的方法)。

实际的本地化文件存储在Resources folder中,如Startup.cs配置中所述。您可以看到它们是按控制器/视图组织的。

Startup.cs文件中还有更多与本地化相关的代码,但是尚不清楚您到底需要哪些代码。我会将所有与本地化相关的代码复制到您的应用程序中,并在工作后删除 来找出实际需要的代码。

本文链接:https://www.f2er.com/1944365.html

大家都在问