从“设置”获取动态属性
我在AppConfig中存储了一些属性,现在我想动态访问它们(例如在循环或函数中)。
使用MySettings.NAME_OF_THAT_THING访问值没有问题,但如果名称是可变的,该怎么办?
我试过了:
String propertyValue = MySettings.GetType().GetProperty("NAME_OF_THAT_THING").ToString();
但我唯一得到的是该物业的名称。 我怎样才能做到这一点?
String propertyValue = MySettings.GetType() .GetProperty("NAME_OF_THAT_THING") .GetValue(MySettings, null); //replace MySettings with null in GetValue(...) if MySettings is a static class
您需要做的就是:
String propertyValue = Settings.Default["NAME_OF_THAT_THING"].ToString();
虽然使用reflection显然会起作用,但它太过分了。
您是否尝试过使用ConfigurationManager.AppSettings属性 ? 您应该可以通过以下代码获取设置:
String propertyValue = ConfigurationManager.AppSettings["NAME_OF_THAT_THING"];
ConfigurationManager.AppSettings的MSDN文章还包括一个通过索引而不是名称循环AppSettings中所有条目的示例。
回答原始海报的问题就像:MySettings [NAME_OF_THAT_THINGmysettings]做的工作就像上一篇文章一样
但对于那些寻求在Windows应用程序中使用内置设置的答案的人:myAppDefaultNameSpace.Properties.Settings.Default [NAME_OF_THAT_THINGmysettings]是要走的路