2010-06-11 6 views
0

예전에 Settings 클래스를 사용 해본 적이 없지만 현재 읽고있는 CodeProject (예 : http://www.codeproject.com/KB/cs/PropertiesSettings.aspx)에 대한 기사가 있지만 지금까지는 저장 방법을 알지 못했습니다. string 배열 다음에 시작됩니다.C# 응용 프로그램 및 구성 설정

예를 들어 내 응용 프로그램에 여러 개의 FileSystemWatcher 인스턴스가 있고 각 인스턴스마다 다른 여러 디렉토리가 연결되어 있습니다 (예를 들어 한 FSW 인스턴스가 변경을 위해 하나의 디렉토리를 모니터링하고 일부 파일을 여러 다른 디렉토리에 복사하는 경우) FSW 인스턴스를 나타내는 감시 경로가있는 string 배열과 해당 경로 각각에 대해 string 배열을 가지며 영향을받는 디렉토리를 나타냅니다.

내 질문은 무엇을 사용해야합니까 (Settings 클래스 또는 다른 것) 무엇이며 string 배열의 변수 번호 인 응용 프로그램 구성을 저장하는 데 어떻게 사용해야합니까? 내가 커스텀 클래스를 만들 때 너무 많은 시간이 없기 때문에 (내가 해결책을 찾지 못하면해야 할 것입니다.) 또는 잘 알려지지 않은 해킹을 파헤쳐 서 너무 빨리 사용할 수있는 것에 중점을 둡니다. 튜토리얼 링크, 코드 스 니펫이 매우 유용합니다.

감사합니다.

답변

1

대신 구성 파일을 사용하지 않는 이유는 무엇입니까? 나는 당신과 같은 FileSystemWatchers 세트를 가지고 있으며, 단지 custom config sections을 사용하는 경로 집합을 추가했습니다. 클래스를 확장하여 Configuration 클래스를 확장해야한다는 생각은 있지만 그 방법을 이길 수는 없다고 생각합니다.

분명히 쉽게 해킹하고 사용자 지정 구성 섹션/요소/컬렉션으로 귀찮고 싶지는 않지만. AppSettings의 빠르고 쉬운 해킹을 사용하십시오. XD

<appSettings> 
    <add key="ConnectionInfo0" value="server=(local);database=Northwind;Integrated Security=SSPI" /> 
    <add key="ConnectionInfo1" value="server=(local);database=Northwind;Integrated Security=SSPI" /> 
    <add key="ConnectionInfo2" value="server=(local);database=Northwind;Integrated Security=SSPI" /> 
</appSettings> 

코드에서 가져 오기.

const string CONNECTIONSTRING=""; 
int i = 0; 
while(ConfigurationSettings.AppSettings["ConnectionInfo"] + i != null) 
{ 
    // do stuff with connection info here 
    // use 
    ConfigurationSettings.AppSettings["ConnectionInfo" + i]; 
    // to get data. 
    ++i; 
} 

엄청 추억. 사용자 지정 구성이 가장 잘 작동합니다.

+0

답변 해 주셔서 감사합니다. 내가 데이터를 프로그래밍 방식으로 추가해야 할 필요가있다. 그리고 지금 올바르게 (IMO를 복잡하게 만드는) 방법을 배우는 데 너무 많은 시간을 소비하지 않기 때문에, 나는 System.Xml.Serialization.XmlSerializer '당장. 설정을 나타내는 사용자 정의 클래스를 사용하면 훨씬 깔끔하고 사용/배포가 훨씬 쉬워집니다. 건배. – Maks