2009-02-03 11 views
91

고정 ConfigurationManager.OpenExe(exePath) 메서드를 사용하여 어셈블리와 관련된 구성 파일을 열 수 있지만 어셈블리와 관련이없는 구성을 열려고한다는 것을 알고 있습니다. 표준 .NET 설정 파일.사용자 지정 구성 파일로드

답변

204

기사되어 아주 좋은,하지만 불행히도 그들은 당신의 질문에 대답하지 않습니다.

하는 문제를 해결하기 위해이 코드의 조각을 시도해야합니다 :

ExeConfigurationFileMap configMap = new ExeConfigurationFileMap(); 
configMap.ExeConfigFilename = @"d:\test\justAConfigFile.config.whateverYouLikeExtension"; 
Configuration config = ConfigurationManager.OpenMappedExeConfiguration(configMap, ConfigurationUserLevel.None); 
+0

@Oliver'whateverYouLikeExtension'에 의해서,'config.' 뒤에 * something *이 있어야 함을 의미합니까? – Svish

+1

@Svish : 기억이 안납니다. 시도해 봤어? – Oliver

+3

@Oliver 지금 시도해보고있어. 제대로 작동하지 않는 것 같습니다. – Svish

6

설정 파일은 XML 파일, 당신은에 의해 열 수 있습니다 :

private static XmlDocument loadConfigDocument() 
{ 
    XmlDocument doc = null; 
    try 
    { 
     doc = new XmlDocument(); 
     doc.Load(getConfigFilePath()); 
     return doc; 
    } 
    catch (System.IO.FileNotFoundException e) 
    { 
     throw new Exception("No configuration file found.", e); 
    } 
    catch (Exception ex) 
    { 
     return null; 
    } 
} 

이후로 값을 검색 : 리키에 의해 게시

// retrieve appSettings node 

    XmlNode node = doc.SelectSingleNode("//appSettings"); 
+0

도달 할 수없는 코드를'새로운 예외 (던져 "찾을 수 없습니다 구성 파일을." , e); – Oybek

+0

반환 null을 제거합니다. 실제로 도달하지 않습니다. –

+7

.Net 라이브러리의 뛰어난 클래스가있을 때 XML을 사용해야하는 이유. 나는 이것을 사용하지 않을 것을 제안했다. 다음은? 다른 문자열 클래스를 구현하십시오. 이것을 고려하십시오. – Yuki

관련 문제