从“设置”获取动态属性

我在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]是要走的路