2013-03-15 4 views
0

app.config에 2 섹션의 설정을 저장해야하며 클래스를 초기화 할 때 전달 된 값에 따라 설정 섹션 중 하나를로드합니다.app.config에 사용자 정의 설정의 두 섹션을 추가하고 asp.net의 클래스로 읽는 방법은 무엇입니까?

클래스

Public Class SiteSettings 

    Sub New(ByVal Id As Integer) 
      If Id = 1 Then 
       'Load in group1 settings. 
       'Ideally the settings will be available as properties 
      Else 
       'Load in group2 settings 
      End If 
    End Sub 
    ... 
End Class 

코드

Dim objSettings = New SiteSettings(Id) 

'just to demo what I'm trying to achieve 
response.Write(objSettings.setting1) 

의 App.config를 :

내가 이상적으로 달성하는 데 필요한 것입니다
<siteSettings> 
    <section name="group1"> 
     <setting1 value="abc" /> 
    </section> 
    <section name="group2"> 
     <setting1 value="xyz" /> 
    </section> 
</siteSettings> 

답변

1

자신의 설정에서 읽기가 어렵지 않아야합니다. 거기에 사용자 정의 구성 설정을 읽는 데 대한 많은 코드가 있습니다 -이 페이지의 "관련"아래에있는 링크를보십시오. 설정 객체가 직렬화 가능한 경우 사용자 정의 설정 지원을 사용하여 app.config에서 인스턴스를 검색 할 수 있습니다. 객체를 인스턴스화하고 생성자에서 모든 설정 읽기 로직을 ​​캡슐화 할 경우

, 당신은 아마 일종의 같이, 실제 사용자 정의 구성 설정에 대한 래퍼를 작성해야 :

public interface ISettings 
{ 
    int Setting1 { get; set; } 
} 

[Serializable] 
public class ActualSettings : ISettings 
{ 
    public int Setting1 { get;set;} 
} 

public class SettingsAdapter : ISettings 
{ 
    private ISettings settings; 
    public SettingsAdapter(int id) 
    { 
     if(id == 1) 
      settings = // code to retrieve instance #1 from app.config 
     else 
      settings = // code to retrieve instance #2 from app.config 
    } 

    public int Setting1 { 
     get { return settings.Setting1; } 
     set { settings.Setting1 = value; } 
    } 
} 
+0

오, 나는 C#으로 해냈어. 그러나 당신은 아이디어를 얻습니다. –

+0

문제 없습니다. 변환 해 드리겠습니다. 고마워요. – DAC84

+0

이 코드를 기반으로 작업하고 있습니다. – DAC84

0

이는 app.config 파일에서 지원되는 것 이상일 수 있습니다. 그러나 확실히 자신의 xml 파일을 응용 프로그램 디렉토리에 포함시키고 XPath로 구문 분석하여 설명대로 설정을로드 할 수 있습니다.