2009-04-23 5 views
8

WindowsとMonoで使用できるようにするC#サービスを作成しています。私はMonoを試し始めたばかりで、WindowsとMonoの両方で動作するサービスを制御するための設定を保存する最良の方法を決定しようとしています。WindowsとMonoでのC#サービス設定の保存

  1. 設定は、サービスがインストールされているファイル

    • 長所:権限、Windowsがおそらくファイル
    • への書き込みを好きではないだろう:プラットフォームごとに同じコード、編集のために
    • 短所を見つけるのは簡単
  2. プラットフォームストレージでの設定ファイル(%APPDATAは、/ etc ...)

    • 長所:編集用
    • 短所見つけるのは容易な権限、必要があります:(?多分SQLiteの)その他の各プラットフォームに対応するために必要なコーディング
  3. 小さなデータベースを

    • 長所:へ簡単設定を保存および取得するためのコードを書く
    • 短所:手作業で編集するのは簡単ではなく、保存先と同じ問題

あなたはどちらが一番良いと思いますか、より良い提案がありますか?
また、設定を簡単に変更できるようにコマンドラインクライアントを作成していますが、設定を保存する方法が変わるでしょうか?

答えて

5

IsolatedStorageをご覧ください。これはアプリケーションごとのストレージを提供するためのAPIで、.NETに組み込まれており、Monoでサポートされています。このAPIは、フレームワークによって管理される場所に格納されたファイルに対してファイルIOを提供します。モノでは〜/ .isolatedstorageディレクトリになります.Windowsでは、ユーザーのドキュメントと設定のどこかに置かれます。

このAPIを使用すると、オペレーティングシステムの仕様やアクセス許可を気にせずに設定ファイルを維持できます。

+0

MonoでIsolatedStorageが実装されているとは考えられませんでした。 SQLiteのように見えるADO.NETには、IsolatedStorageのサポートが計画されています。 – Samuel

+0

IsolatedStorageでは、複数のプロジェクト間でストアを共有することはできません。私のやりたいことをその種のものが殺します。アセンブリを移動すると死ぬこともあります。 – Samuel

+0

本当ですか? IsolatedStorageScope.Userの独立したストレージストアを要求した場合はどうなりますか?私はこれを試していないが、それは動作する可能性があります... –

関連する問題