gpt4 book ai didi

c# - 反射如何在资源库上工作

转载 作者:行者123 更新时间:2023-11-30 20:47:54 24 4
gpt4 key购买 nike

我想了解这样的代码如何检索指定 ThreadUI Culture 的资源?

var value = resourceAssembly
.GetType("Namespace.FooBar")
.GetProperty("Hello")
.GetValue(null, null) as string;

如果我的 ThreadUI Culture 是英语,我会得到英语值。如果是德语,我会得到德语值。好的。但是它在内部是如何工作的呢?

最佳答案

如果您打开生成的对应于该类型的 C# 文件,您将看到如下内容:

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

除非您特定resourceCulture(通过设置Culture 属性),否则它仍将是null,因此以上等同于:

return ResourceManager.GetString("Hello", null);

ResourceManager 属性返回一个 System.Resources.ResourceManager,如果您查看 ResourceManager.GetString(string, CultureInfo) 的文档你会看到:

In desktop apps, if culture is null, the GetString(String, CultureInfo) method uses the current UI culture obtained from the CultureInfo.CurrentUICulture property.

这就是全部 - 只是调用默认使用当前 UI 区域性的库方法。

关于c# - 反射如何在资源库上工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25367606/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com