设置类的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中有一个树集合类,这样的东西是最好的解决方案吗?你们推荐什么?
为什么不将整个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
}
......
......
像这样的东西。