2012-01-09 3 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 serialization deserialization에 대해 생각해보십시오. – 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

내가 더 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 
} 
...... 
...... 

뭔가에 대한 구체적인 구현 후

.

+0

감사합니다. – Artmann