我正在尝试动态设置资源字符串。资源名称根据从 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/