2012-01-09 20 views
1

私は現在、ユーザーと一緒に作業しているアプリケーションで、XMLファイルにさまざまなカテゴリに分けられた多くの設定を保存することができます。C#設定クラスの構造

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でツリーコレクションクラスがあり、そのようなものが最良の解決策であることを思い出しましたか? あなたは何をお勧めしますか?

+0

XDocumentに設定を保存することができます... –

+0

xmlシリアル化の逆シリアル化について考えることがあります。 – adatapost

答えて

2

なぜXMLファイル全体をXPathDocumentにロードするだけではないのですか?使いやすく、スピードも速いです。

あなたはそうのような個々の設定にアクセスできます。

XPathDocument xmldoc = new XPathDocument(settingsFile); 
XPathNavigator nav = xmldoc.CreateNavigator(); 

foreach (XPathNavigator node in nav.Select("settings/setting2/setting3")) 
{ 
    ... 
} 
+1

あなたは私を冗談していますか?それは簡単ではありませんか? – Artmann

+0

私は恐れているので... Google XPathDocumentとXPathNavigatorだけで便利な例が見つかります! –

1

は、私はより多くのオブジェクト指向のアプローチのために立って。

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 
} 
...... 
...... 

このような何かのための具体的な実装後。

+0

ありがとうございました。 – Artmann