Как получить доступ к ресурсам из другого проекта - PullRequest
0 голосов
/ 29 мая 2020

У меня есть два файла ресурсов под названием String.arg.resx и String.en.rex в проекте под названием Common

Затем у меня есть класс LocalizationService в моем сервисном проекте, код следующий:

public class LocalizationService
{
    private ResourceManager resourceManager;
    private CultureInfo cultureInfo;

    public LocalizationService()
    {
        SetDefaultCultureAndResource();       
    }

    private void SetDefaultCultureAndResource()
    {
        cultureInfo = CultureInfo.CreateSpecificCulture("en");
        resourceManager = new ResourceManager("Common.Resources.String", Assembly.GetAssembly(typeof(Common.Resources));
    }

    public void ChangeLanguage(Languages languages)
    {
        switch (languages)
        {
            case Languages.Español:
                cultureInfo = CultureInfo.CreateSpecificCulture("es");
                resourceManager = new ResourceManager("Common.Resources.String", typeof(LocalizationService).Assembly);
                break;
            case Languages.English:
                cultureInfo = CultureInfo.CreateSpecificCulture("en");
                break;
            default:
                cultureInfo = CultureInfo.CreateSpecificCulture("en");
                break;
        }
    }

    public string GetString(string value)
    {
        return resourceManager.GetString(value, cultureInfo);
    }

}

Но строка resourceManager = new ResourceManager("Common.Resources.String", Assembly.GetAssembly(typeof(Common.Resources)); не работает, потому что я не вижу Common.Resources.

Какой метод класса Assembly мне следует использовать?

1 Ответ

0 голосов
/ 29 мая 2020

Хорошо ... Кажется, я нашел ответ, я просто поместил класс внутри сборки, где находятся файлы ресурсов.

...