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