8

データを保存する必要があるアプリケーションがあります。現在、組み込みのアプリケーション設定を使用してそれを実行していますが、アプリケーション スコープとユーザー スコープの 2 つの選択肢しかありません。理想的には、アプリケーションを別のユーザーの下で実行し、そのユーザーのためにデータを再作成するのではなく、そのデータを見つけることができる「ローカル」スコープが必要です。これはアプリケーション スコープで実行できますが、読み取り専用です。アプリケーションデータは、ユーザーによって変更されます。管理者のみがデータの変更を許可されていれば問題ありません。

ご想像のとおり、ユーザーがデータを変更できる管理ツールと、データを読み取って何かを実行する Windows サービス ランナーがあります。管理ツールで作成したデータに、Windows サービスのランナーがアクセスできれば良いのですが。

4

2 に答える 2

8

データが非常に単純で、他のアプリケーションやユーザーが (適切な権限で) 読み取れるようにする必要がある場合は、おそらく XML ファイルまたはユーザーのアプリケーション データ内のプレーンテキスト ファイルに格納することを選択します。経由で取得されるフォルダEnvironment.GetFolderPath。保存の例は次のようになります。

using System.IO;
using System.Xml.Linq;

string settingsDirectory = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
if (!Directory.Exists(settingsDirectory))
    Directory.CreateDirectory(settingsDirectory);
string fileName = "tasks.xml";
string settingsPath = Path.Combine(settingsDirectory, fileName);
XDocument settingsDoc = new XDocument(
    new XElement("Tasks",
        new XElement("Task",
            new XElement("Name", "Make Breakfast"),
            new XElement("Location", @"C:\Program Files\MyApp\Plugins"),
            new XElement("FileName", "breakfast.dll"))));
// ... etc.
settingsDoc.Save(settingsPath);

以上です - 設定が保存されました!で再度ロードできますXDocument.Load

于 2010-05-05T03:10:42.267 に答える
0

データベースに保存したいようですが、質問はローカルかネットワーク上かどうかです。答えは、保存しているデータの種類、アプリの配布方法、およびその他の要因によっても異なります。

ああ、ところで、プラットフォームを (できればタグを使用して) 指定していただければ、より良い方法でお手伝いできます。silverlight、wpf、winforms、asp.net、console などです。

于 2010-05-04T18:58:26.183 に答える