2013-03-19 2 views
-1

서비스가 실행되면 변경 될 수있는 값을 읽기 위해 XML을 사용해야하며 현재 XML 설정에 문제가있는 사람에게만 소스를 찾을 수 있습니다. 그것에 초보자가 온다.Windows 서비스에서 .xml 사용 C#

누구든지 XML을 사용하여 시작하는 방법을 간략하게 설명 할 수 있습니까? Windows 서비스를 설계 할 때나 초보자가 좋은 방향으로 나를 가리킬 때를 알 수 있습니까?

덕분에

+1

정확히 어떤 어려움 Windows 서비스의 XML로 작업 할 때 직면하고있다? – NoviceProgrammer

+0

Xml에는 Windows 서비스에 대한 증오심이없고 다른 종류의 프로젝트에도 편향된 사랑이 없습니다. 정확히 당신이 XML로하고 싶은 일과 당신이 직면 한 정확한 문제를 게시하십시오. – publicgk

+0

값을 입력하기위한 app.config가 있습니까? –

답변

0

XML은 Windows 서비스 함께 할 아무것도있다.

간단한 방법으로 XmlDocument 클래스를 사용하는 방법에는 여러 가지가 있습니다.

예를 들어

XmlDocument configDoc = new XmlDocument(); 
configDoc.Load("ServiceConfig.xml"); 
XmlNode pollingNode = configDoc.DocumentElement.SelectSingleNode("PollingInterval"); 
if (pollingNode != null) 
{ 
/// Grab pollingNode.InnerText, convert to an int and set Property... 
} 

위, 일부 halfwit이 밖으로 잠금 XML은

<Config> 
<PollingInterval>30</PollingInterval> 
</Config> 

이와 당신의 큰 문제가 어디가 손상되는 파일을 넣어 것 그것으로 다루고입니다 가정 그것, 그것 삭제되고있다 ...

나는이 아이디어에 정신이 가기 전에 생각할 것이다.

+0

런타임에 서비스가 실행되는 방식을 어떻게 바꿀 수 있습니까? – user345453

+0

@BenAshton 런타임에이 작업을 수행해야하는 이유가 있습니까? 많은 앱에서 app.config 파일을 변경 한 다음 변경 사항을 적용하려면 서비스를 다시 시작해야합니다. 원할 경우 런타임에이를 변경할 수있는 방법이 많이 있습니다. WPF를 통해 서비스와 통신하는 별도의 실행 파일로 GUI를 제공 할 수 있습니다. –

+0

@JohnKoerner가 그 점에 대답 한 것 같습니다. 파일은 간단하고 어쩌면 프로토 타입으로 시작하기에 좋지만 인터페이스를 통해 구현할 수 있습니다. 그런 다음 부분적으로 편집 된 공포의 실종/고장 또는 공포에 대처할 필요가없는 곳에 사용할 수 있습니다. –

0

원하는 경우 XML 직렬화를 사용할 수 있습니다.

string filePath = ".\\Demo.xml"; 
private void Form1_Load(object sender, EventArgs e) 
{ 
    ReadSettings(); 
} 

void ReadSettings() 
{ 
    XmlSerializer s = new XmlSerializer(typeof(Settings)); 
    Settings newSettings = null; 
    using (StreamReader sr = new StreamReader(filePath)) 
    { 
     try 
     { 
      newSettings = (Settings)s.Deserialize(sr); 
     } 
     catch (Exception ex) 
     { 
      Debug.WriteLine("Error:" + ex.ToString()); 
     } 
    } 
    if (newSettings != null) 
     this.Text = newSettings.WatchPath; 

} 

public class Settings 
{ 
    public string WatchPath { get; set; } 
} 

XML 형식 :이 출력 디렉토리에 Demo.xml라는 파일을 가정

<?xml version="1.0" encoding="utf-8" ?> 
<Settings> 
    <WatchPath>C:\Temp</WatchPath> 
</Settings> 
+0

나는 내가 할 수있는 것에 더 많은 것을 의미한다. 예를 들어 xml 내부의 값진 값을 바꿀 수 있고, 어떻게하면 좋을까? – user345453

관련 문제