从“设置”获取动态属性

时间:2012-06-12 12:48:10

标签: c# .net settings app-config

我的AppConfig中存储了一些属性,现在我想动态访问它们(例如在循环或函数中)。

使用MySettings.NAME_OF_THAT_THING访问这些值没有问题,但如果名称是可变的,该怎么办?

我试过了:

String propertyValue = MySettings.GetType().GetProperty("NAME_OF_THAT_THING").ToString();

但我唯一得到的就是财产的名称。我怎么能这样做?

4 个答案:

答案 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] 是要走的路