获得从设置动态属性(Get dynamic property from Settings)

2019-06-25 10:16发布

我有存储在我的AppConfig几个属性,现在我要动态地访问这些文件(例如,在一个循环或功能)。

使用MySettings.NAME_OF_THAT_THING是没有问题的访问值,但如果名称是可变的什么?

我试过了:

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

但我回来的唯一的事情就是属性的名称。 我怎样才能做到这一点?

Answer 1:

String propertyValue = MySettings.GetType()
.GetProperty("NAME_OF_THAT_THING")
.GetValue(MySettings, null); //replace MySettings with null in GetValue(...) if MySettings is  a static class


Answer 2:

所有您需要做的是:

String propertyValue = Settings.Default["NAME_OF_THAT_THING"].ToString();

虽然使用反射显然会工作,这是矫枉过正。



Answer 3:

您是否尝试过使用ConfigurationManager.AppSettings财产 ? 您应该能够通过下面的代码,让您的设置:

String propertyValue = ConfigurationManager.AppSettings["NAME_OF_THAT_THING"];

MSDN文章为ConfigurationManager.AppSettings还包括用于通过索引通过所有条目中的AppSettings循环,而不是名称的例子。



Answer 4:

答案原单海报的问题是这样的:MySettings [NAME_OF_THAT_THINGmysettings]确实像原来职位的工作

但是,对于那些人寻找答案,在他们的Windows应用程序中使用内置的设置:myAppDefaultNameSpace.Properties.Settings.Default [NAME_OF_THAT_THINGmysettings]是要走的路



文章来源: Get dynamic property from Settings