Получить строковое значение из файла ресурсов в. NET Core 3.1 WinForms (нужен простой пример) - PullRequest
1 голос
/ 13 июля 2020

Я просмотрел все и нашел много сложных примеров. На самом деле мне просто нужно прочитать строку из моего файла ресурсов. Мой старый код (до NET Core) больше не работает. Не мог бы кто-нибудь показать мне простой пример?

1 Ответ

0 голосов
/ 13 июля 2020

Я лично не имел дела с файлами ресурсов в. NET Core, но похоже, что они все еще поддерживаются. Я нашел эту статью: Глобализация и локализация в ASP. NET Core , который ссылается на образец проекта .

Это может показаться сложным, но в итоге Надеюсь, это будет иметь смысл, если мы его разберем. Если вы посмотрите на этот код, важные вещи:

В 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();
}

Или в Просмотр :

@using Microsoft.AspNetCore.Mvc.Localization

@inject IViewLocalizer Localizer

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

(использование его из представления, вероятно, намного лучший способ сделать это).

Фактические файлы локализации хранятся в ресурсах папка , как указано в конфигурации Startup.cs. Вы можете видеть, что они организованы по контроллеру / представлению.

В файле Startup.cs есть еще код, связанный с локализацией, но не совсем ясно, какие именно вам понадобятся. Я бы скопировал весь код, связанный с локализацией, из них в ваше приложение и выяснил, какие из них действительно нужны, удалив разделы после , чтобы он заработал.

...