Где я должен хранить данные своего приложения? - PullRequest
7 голосов
/ 04 мая 2010

У меня есть приложение, которое должно хранить данные. В настоящее время я использую встроенные параметры приложения, чтобы сделать это, но он дает мне только два варианта: приложение и пользовательские области. В идеале мне нужна «локальная» область действия, которая позволяет приложению работать под другим пользователем и по-прежнему находить его данные, а не заново создавать его для этого пользователя. Область приложения может сделать это, но это только для чтения. Данные приложения будут изменены пользователем. Это нормально, если только администратору разрешено вносить изменения в данные.

Как вы, наверное, догадались, у меня есть инструмент администрирования, который позволяет пользователю изменять данные и запускать службу Windows, которая читает данные и что-то с ними делает. Было бы замечательно, если бы бегун службы Windows получил доступ к данным, созданным инструментом администрирования.

Ответы [ 2 ]

7 голосов
/ 05 мая 2010

Если данные очень, очень простые, и вам нужно, чтобы они были доступны для чтения другим приложениям или пользователям (с соответствующими разрешениями), я бы, вероятно, решил сохранить их в файле 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.

0 голосов
/ 04 мая 2010

Похоже, вы хотите сохранить его в базе данных, вопрос локальный или в сети или нет. Ответ также зависит от того, какие данные вы храните, как распространяется ваше приложение и других факторов.

Да, и кстати, мы могли бы помочь вам лучше, если бы вы указали свою платформу (желательно с тегом) - silverlight, wpf, winforms, asp.net, console и т. Д.

...