c# - 从名称调用属性或类型

标签 c# c#-4.0

我正在尝试动态设置资源字符串。资源名称根据从 Web 服务返回的代码而略有不同。不同的代码应该向用户显示不同的消息。

有没有一种好的方法可以使用反射或其他黑魔法来完成此操作,而不是使用巨大的 if 结构或字典。这类事情:

var message = Something.Invoke("HostedResources.MESSAGE_CODE_" + code);

谢谢

最佳答案

是的,您可以使用反射按名称获取属性:

HostedResources hostedResourceInstance = GetHostedResources();

PropertyInfo info = typeof(HostedResources).GetProperty("MESSAGE_CODE_" + code);
var message = (string)info.GetValue(hostedResourceInstance, null);

关于c# - 从名称调用属性或类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11102134/

相关文章:

performance - 设置类的私有(private)属性

c# - 使用 C# 删除目录上的只读属性

c# - 在 C# 中对结构进行装箱/拆箱是否可以产生与原子结构相同的效果?

c# - 虽然想要创建 SIFTDetector : Get an Attempted to read or write protected memory exception Error 的实例

c# - 帮助将 VB.NET "Handles"语句转换为 C#

c# - 什么是堆栈跟踪?

c# - SQL 或 C# 的配对速度更快吗?

c#-4.0 - 如何在 .NET 4.0 中使用代码契约而不会使我的代码看起来很困惑?

c# - 数据表未被填充

c# - 我如何使用 MS Moles 从地鼠那里引发事件?