设置类的C#结构

本文关键字:结构 设置 | 更新日期: 2023-09-27 18:19:45

在我目前使用的应用程序中,用户可以在XML文件中存储许多不同类别的设置。

XML可能看起来像

<settings>
    <setting2>
        <setting3>
            <value1>foo</value1>
            <value2>bar</value2>
        </setting3>
        <value3>A list of strings</value3>
    </setting2>
    <setting4>
        <value4>An integer</value4>
    </setting4>
</settings>

我感到困惑的是,如何最好地构建包含这些信息的类,我一开始是做一个包含类别和值列表的递归类,现在我想起来Java中有一个树集合类,这样的东西是最好的解决方案吗?你们推荐什么?

设置类的C#结构

为什么不将整个XML文件加载到XPathDocument中?它很容易使用,而且速度很快。

你可以访问这样的个人设置:

XPathDocument xmldoc = new XPathDocument(settingsFile);
XPathNavigator nav = xmldoc.CreateNavigator();
foreach (XPathNavigator node in nav.Select("settings/setting2/setting3"))
{
   ...
}

我支持更多OO方法。

public abstract class SettingAbstract
{
   public abstract List<Setting> Children {get;set;}
   public abstract List<object>  Values {get;set}
   public XmlNode SaveMe();
}

并且在每种设置类型的具体实施之后

public Setting2 : SettingAbstract
{
   //concrete implementation 
}

public Setting3 : SettingAbstract
{
  //concrete implementation
}
......
......

像这样的东西。