C# 使用反射从资源中获取价值

C# 使用反射从资源中获取价值,c#,reflection,C#,Reflection,您好,我正在尝试使用反射从资源文件中的键获取值。不管怎样,我都在挣扎。我构建了名称空间和区域性,但值总是为null public static string GetResource(string language) { var culture = (language == "en-US") ? string.Empty : $".{language}"; var resource = Assembly .GetExecut

您好,我正在尝试使用反射从资源文件中的键获取值。不管怎样,我都在挣扎。我构建了名称空间和区域性,但值总是为null

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

由于“Hello”属性是
内部的
静态的
,我们应该指定它:

resource.GetProperty("Hello", BindingFlags.NonPublic | BindingFlags.Static);

共享Hello属性的代码。