8

我有一个需要存储数据的应用程序。目前,我正在使用内置的应用程序设置来执行此操作,但它只给了我两个选择:应用程序和用户范围。理想情况下,我想要一个“本地”范围,允许应用程序在另一个用户下运行,并且仍然可以找到它的数据,而不是为那个用户重新创建它。应用程序范围可以做到这一点,但它是只读的。应用程序数据将由用户更改。如果只允许管理员对数据进行更改就可以了。

正如您可能猜到的那样,我有一个管理工具,允许用户更改数据和读取数据并对其执行某些操作的 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、控制台等。

于 2010-05-04T18:58:26.183 回答