我的 AppConfig 中存储了一些属性,现在我想动态访问它们(例如在循环或函数中)。
使用 MySettings.NAME_OF_THAT_THING 访问值没有问题,但是如果名称是可变的呢?
我试过了:
String propertyValue = MySettings.GetType().GetProperty("NAME_OF_THAT_THING").ToString();
但我得到的唯一信息是该物业的名称。我怎样才能做到这一点?
我的 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
对原始海报问题的回答如下: MySettings[NAME_OF_THAT_THINGmysettings] 像以前的帖子一样工作
但是,对于那些在他们的 Windows 应用程序中寻找使用内置设置的答案的人:myAppDefaultNameSpace.Properties.Settings.Default[NAME_OF_THAT_THINGmysettings] 是要走的路
您是否尝试过使用ConfigurationManager.AppSettings 属性?您应该能够通过以下代码获取您的设置:
String propertyValue = ConfigurationManager.AppSettings["NAME_OF_THAT_THING"];
ConfigurationManager.AppSettings 的 MSDN 文章还包括一个示例,用于按索引而不是名称遍历 AppSettings 中的所有条目。