サービスが実行されたら変更できる値を読み取るために、サービスで 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>
これに関するあなたの大きな問題は、ファイルをどこに置くか、ファイルが破損したり、中途半端にロックアウトされたり、削除されたりすることに対処することです...
このアイデアに頭を悩ませる前に、私は考えたいと思います。