我需要为我的服务使用 XML 来读取一旦运行就可以更改的值,而且我只能找到有关他们当前 XML 设置有问题的人的资源,而对于初学者来说几乎一无所获。
谁能简要解释一下在设计 Windows 服务时如何开始使用 XML,或者向我指出一个初学者可以理解的良好资源的方向?
谢谢
我需要为我的服务使用 XML 来读取一旦运行就可以更改的值,而且我只能找到有关他们当前 XML 设置有问题的人的资源,而对于初学者来说几乎一无所获。
谁能简要解释一下在设计 Windows 服务时如何开始使用 XML,或者向我指出一个初学者可以理解的良好资源的方向?
谢谢
如果您愿意,可以使用 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>
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>
你最大的问题是你要把文件放在哪里,处理它被损坏的问题,一些笨蛋把你锁在外面,它被删除了......
在考虑这个想法之前,我会先考虑一下。