2012-07-09 3 views
0

app.config 파일이 있습니다.LINQ를 사용하여 app.config 업데이트

내가 가져 오지 및 속성 편집 할 :

<appSettings> 
    <add key="ProcessorInstances" value="2" /> 
</appSettings> 

내가이 쿼리를 사용하고 있습니다 :

var list5 = from appNode in doc2.Descendants("appSettings").Elements() 
      where appNode.Attribute("key").Value == "ProcessorInstances" 
      select appNode; 
var element5 = list5.FirstOrDefault(); 
string five = element5.Attribute("value").Value; 

을하지만 지금과 같은 요소에 직면하고있다 :

<app> 
    <file value="../../../logs/Intel.Service.log" /> 
</app> 

과 :

<baseAddresses> 
    <add baseAddress="http://Machinename:portnumber/servicename/" /> 
</baseAddresses> 

이 요소에는 키 속성이 없습니다.

어떻게 편집 할 수있는 LINQ 쿼리를 작성할 수 있습니까?

+0

linCon을 사용하여 appConfig에서 baseAddress를 가져 오시겠습니까? –

+0

왜 linq로이 작업을 수행 하시겠습니까? 구성 파일을 사용하는 표준 방법이 있습니다. Visual Studio에서 구성 파일의 값을 읽을 수있는 (리소스) 개체를 생성하도록 할 수 있습니다. 그런 다음 replace 함수를 사용하여 값을 변경할 수 있습니다. –

+0

설정에있는 요소의 전체 경로를 제공해야 도움이됩니다. 앱 설정에서 무언가를 사용하면 ConfiguratioinManager.AppSettings를 사용하기가 편리합니다. – Rajesh

답변

7

xml로 app.Config 파일을 구문 분석하고 Linq를 사용하는 것이 App.Config에서 설정을 가져 오는 방법이 아닙니다. 대신 System.Configuration.ddl을 사용하십시오 (프로젝트에서이 파일에 대한 참조를 추가하십시오).

예.

string baseAddress = ConfigurationManager.AppSettings["baseAddress"].ToString(); 
+0

네,하지만이 app.config 파일은 같은 클래스 라이브러리에 없습니다. 다른 위치에 있기 때문에 linq을 사용하는 느낌이 들었습니다. – user1410658

+1

다른 라이브러리의 config 파일에 저장된 변수에 액세스하는 것은 좋지 않습니다. 유효성을 보장 할 수 없습니다. 대신 라이브러리에서 객체의 인스턴스를 생성하면 생성자의 값을 전달합니다. –

+0

좋습니다! 제안 해 주셔서 감사합니다. – user1410658

관련 문제