-1

我需要为我的服务使用 XML 来读取一旦运行就可以更改的值,而且我只能找到有关他们当前 XML 设置有问题的人的资源,而对于初学者来说几乎一无所获。

谁能简要解释一下在设计 Windows 服务时如何开始使用 XML,或者向我指出一个初学者可以理解的良好资源的方向?

谢谢

4

2 回答 2

0

如果您愿意,可以使用 XML 序列化。这假定输出目录中有一个名为 Demo.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 格式:

<?xml version="1.0" encoding="utf-8" ?>
<Settings>
  <WatchPath>C:\Temp</WatchPath>
</Settings>
于 2013-03-19T17:57:33.473 回答
0

XML 与 Windows 服务无关。

在 c# 中有多种使用方法,一种简单的方法是 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...
}

以上假设 xml 是

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

你最大的问题是你要把文件放在哪里,处理它被损坏的问题,一些笨蛋把你锁在外面,它被删除了......

在考虑这个想法之前,我会先考虑一下。

于 2013-03-19T17:44:00.993 回答