2012-06-19 114 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);