我正在尝试动态设置资源字符串。根据从Web服务返回的代码,资源的名称会略有不同。不同的代码应该向用户显示不同的消息。
使用反射或其他一些黑魔法,我可以用一种很好的方式来代替巨大的if结构或字典。这种事情:
var message = Something.Invoke("HostedResources.MESSAGE_CODE_" + code);
由于
答案 0 :(得分:2)
是的,您可以使用反射按名称获取属性:
HostedResources hostedResourceInstance = GetHostedResources();
PropertyInfo info = typeof(HostedResources).GetProperty("MESSAGE_CODE_" + code);
var message = (string)info.GetValue(hostedResourceInstance, null);