从“设置”中获取动态属性

本文关键字:获取 动态 属性 设置 | 更新日期: 2023-09-27 18:36:58

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

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

我试过了:

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

但我唯一得到的是物业的名称。我该怎么做?

从“设置”中获取动态属性

需要做的就是:

String propertyValue = Settings.Default["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

您是否尝试过使用 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]是要走的路