Получите ценность от ресурса, используя Отражение - PullRequest
0 голосов
/ 15 октября 2018

Здравствуйте. Я пытаюсь получить значение из Ключа в файле ресурсов, используя отражение.Однако этим я борюсь.Я создаю пространство имен и культуру, но значение всегда выходит пустым.

    public static string GetResource(string language)
    {
        var culture = (language == "en-US") ? string.Empty : $".{language}";

        var resource = Assembly
            .GetExecutingAssembly()
            .GetTypes()
            .Where(x => x.Name.Contains("Test"))
            .Single(x => x.Namespace == $"ConsoleApp1.Resources{culture}");
        resource.GetProperty("Hello");//this is always null

        return null;
    }

Я не уверен, почему это так, но я знаю, что получаю правильный ресурс и вижу свойство в нем.у кого-нибудь есть предложения?

Привет свойство:

    internal static string Hello {
        get {
            return ResourceManager.GetString("Hello", resourceCulture);
        }
    }

1 Ответ

0 голосов
/ 15 октября 2018

Поскольку свойство 'Hello' равно internal и static, мы должны указать его:

resource.GetProperty("Hello", BindingFlags.NonPublic | BindingFlags.Static);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...