- - PR -
XmlSerializerを使用した設定ファイルの作り方
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2009-02-15 14:52
[件名:複数の監視フォルダを制御する方法]
の途中で、質問内容が表題とずれてきたので、新たにスレッドを立てました。 <開発環境> 開発環境:VS2005 言語:C#.net <概要> 現在、あるフォルダを監視し、そこに入ってくるファイル(pdf,tiff等)をファイル名で判別し、複数の登録されてあるフォルダに転送するツールを開発しています。 監視PGはWindowsサービスで開発し、監視に関する各種設定ツールをWindowsAPPで開発しています。 <課題> 上記概要にあるように「WinサービスApp(AAAService.exe)」と「WinApp(BBB.exe)」の2つのプロジェクトで開発を進めています。しかし、両アプリとも使用する設定ファイルは共有したいと考えています。(Ex.監視先フォルダパス等の設定) それを「XmlSerializer」を使用して共有設定ファイルを作ろうと考えています。 現在、以下の[BBB.exe内コード]のようにBBB.exe内で"Class"と"xmlファイル"の作成をしています。 しかし、AAA.exe内でxmlファイルを呼び出す際はどのようにしたらよいのでしょうか? [AAAService.exe内コード]で記載しているように、呼び出すには、BBB.exe内の"Class"を呼び出す必要があり、やはり無理があるのかなと考えています。 良い方法あれば、教えてください。 [BBB.exe内コード]------------------------------------------------------ ●Program.cs内にSxml_classを作成 public class Sxml { public string watch_folder = @"c:\\\\temp"; } ●form.cs内でXmlSerializerを作成 XmlSerializer serializer = new XmlSerializer(typeof(Sxml)); //ファイルを作る FileStream fs = new FileStream(Application.StartupPath + "\\\\\\\\config.xml", FileMode.Create); //インスタンスの生成 Sxml scls = new Sxml(); //書き込み serializer.Serialize(fs, scls); //ファイルを閉じる fs.Close(); ----------------------------------------------------------------------- [AAAService.exe内コード]----------------------------------------------- //ファイルを開く FileStream fs = new FileStream(Application.StartupPath + "\\\\\\\\config.xml", FileMode.Open); //読み込み Sxml scls = (Sxml)serializer.Deserialize(fs); //監視フォルダのフルパスを取得 wpath = scls.watch_folder; //ファイルを閉じる fs.Close(); ----------------------------------------------------------------------- |
|
投稿日時: 2009-02-15 15:22
こんにちわ
AでもBでもそのクラスを呼び出せるように、ライブラリなどにクラスを埋め込んで、共有すればよいのではないでしょうか。 |
|
投稿日時: 2009-02-18 17:40
確かにその通り、ライブラリをひとつ追加すれば良いだけですね。
この方法で、問題なく動作しました。 有難うございました。 |
1