C#动态获取类中的变量名称和值

时间:2012-09-03 17:20:20

标签: c# class variables dynamic settings

我目前正在制作一个程序(C#.Net 4),它有多个选项,保存到文件中。

这些选项是代码中自己的变量,我想知道是否有办法在代码中动态获取这些选项的变量和值。

就我而言,我在“设置”类中有这些选项,我使用Settings.varSetting从我的主窗体类中访问它们。

我在代码中的多个位置获取并设置这些变量;是否可以合并变量列表,以便我可以更容易/一致地访问和设置变量列表(例如,创建一个“设置”表单,该表单可以提取可用选项及其值并动态绘制表单)?

以下是我在Settings类中的当前变量:

    public static Uri uriHomePage = new Uri("http://www.google.com");
    public static int intInitOpacity = 100;
    public static string strWindowTitle = "OpaciBrowser";
    public static bool boolSaveHistory = false;
    public static bool boolAutoRemoveTask = true; //Automatically remove window from task bar if under:
    public static int intRemoveTaskLevel = 50; //percent
    public static bool boolHideOnMinimized = true;

感谢您的帮助,

Karl Tatom(TheMusiKid)

3 个答案:

答案 0 :(得分:5)

您可能需要考虑使用框架中内置的Application Settings功能来加载和存储应用程序设置。

答案 1 :(得分:4)

var dict = typeof(Settings)
    .GetFields(BindingFlags.Static | BindingFlags.Public)
    .ToDictionary(f=>f.Name, f=>f.GetValue(null));

答案 2 :(得分:1)