2012-06-19 74 views
2

我想动态设置资源字符串。根据从Web服务返回的代码,资源的名称略有不同。不同的代码应该向用户显示不同的消息。从名称调用属性或类型

而不是一个巨大的if结构或字典,有一个很好的方式,我可以使用反射或其他一些黑魔法来做到这一点。这样的事情:

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

感谢

+0

但是,在IIS应用程序托管在该Web服务? –

回答

2

是的,你可以使用反射来获取由名称的属性:

HostedResources hostedResourceInstance = GetHostedResources(); 

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