从名称调用属性或类型

时间:2012-06-19 13:36:31

标签: c# c#-4.0

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

使用反射或其他一些黑魔法,我可以用一种很好的方式来代替巨大的if结构或字典。这种事情:

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

由于

1 个答案:

答案 0 :(得分:2)

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

HostedResources hostedResourceInstance = GetHostedResources();

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