2008-10-31 2 views
4

ConfigurationSection 및 ConfigurationElementCollection을 사용하여 설정 파일에서 읽을 클래스를 만들려고하는데 어려움을 겪고 있습니다. 는 config의 예로서ConfigurationSection을 사용하여 설정 파일에서 올바르게 읽는 방법에 대한 도움말

:


<PaymentMethodSettings> 
    <PaymentMethods> 
    <PaymentMethod name="blah blah" code="1"/> 
    <PaymentMethod name="blah blah" code="42"/> 
    <PaymentMethod name="blah blah" code="43"/> 
    <Paymentmethod name="Base blah"> 
     <SubPaymentMethod name="blah blah" code="18"/> 
     <SubPaymentMethod name="blah blah" code="28"/> 
     <SubPaymentMethod name="blah blah" code="38"/> 
    </Paymentmethod> 
    </PaymentMethods> 
</PaymentMethodSettings> 
+0

당신은 나에게 당신이 원하는 무엇인지에 대한 힌트를 줄 수 ? XMLReader를 제공하는 것이 내가 그 이유를 모른다는 것을 모욕 할 때 상당히 모욕적 인 것 같습니다. – websch01ar

+0

그는 .NET에서 기본 제공 구성 클래스를 사용하고 수동으로 파일을 구문 분석하지 않으려합니다. – FlySwat

답변

5

여기의 마법은 ConfigurationSection 클래스를 사용하는 것입니다.

이 클래스는 구성 스키마와 1 : 1로 일치하는 속성 만 포함하면됩니다. 특성을 사용하여 어떤 특성이 어떤 요소와 일치하는지 .NET에 알립니다.

그래서, 당신은 PAYMENTMETHOD를 만들고이없는 ConfigurationSection

에서 상속이 그리고 당신은 SubPaymentMethod를 만들고이 ConfigurationElement에서 상속했을 수 있습니다.

PaymentMethod에는 SubPaymentMethods의 ConfigurationElementCollection에 속성으로 사용됩니다. 즉, 복합 유형을 함께 연결하는 방법입니다.

고유 한 XML 구문 분석 코드를 작성할 필요가 없습니다. 등

public class PaymentSection : ConfigurationSection 
{ 
    // Simple One 
    [ConfigurationProperty("name")]] 
    public String name 
    { 
     get { return this["name"]; } 
     set { this["name"] = value; } 
    } 

} 

...

당신이 유형을 중첩 한 수 있습니다 여기에 ConfigurationElementCollections을 만드는 방법에 대한 참조 :

http://blogs.neudesic.com/blogs/jason_jung/archive/2006/08/08/208.aspx

3

This하면 제대로 구성 섹션을 만드는 방법을 알아내는 데 도움이, 그리고 그들로부터 읽어야한다.