您好,我正在尝试使用反射从资源文件中的Key中获取值。但是我正在努力。我建立了名称空间和区域性,但值始终为空。
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);
}
}
答案 0 :(得分:3)
由于“ Hello”属性为internal
和static
,因此我们应指定它:
resource.GetProperty("Hello", BindingFlags.NonPublic | BindingFlags.Static);