0

我必须保存设备的配置,一位朋友告诉我,由于它只有 2(两个)字段,最好保存/读取它.txt file而不是创建一个表。真的吗 ?
它会更快吗?还是没关系?
如果是这样,我该怎么做?
我知道如何Write/Read使用System.IOand来处理文本文件StreamReader/StreeamWriter
我只是想知道它是否会更快,以及如何读取它并将读取的值设置为配置的想法......也许使用数组和使用Split

4

4 回答 4

2

从性能的角度来看,这并不重要,所以不要自己动手,只需使用内置的 C# properties/app.config 实现。

于 2013-05-16T18:44:12.290 回答
1

对于这种情况,使用默认设置就可以了,您所要做的就是将设置Scope的 设置为User。您可以更新并保存它:

Properties.Settings.Default.Writable = "new value";
Properties.Settings.Default.Save();
于 2013-05-16T22:32:17.303 回答
1

只是为了扩展 Yaur 提出的答案。

使用内置配置设置将是首选,因为它会更快(虽然性能可以忽略不计)并且比存储在表中(我假设您正在谈论数据库表)或使用您自己的配置更简单。

使用内置配置相当简单,如果你不确定它是如何完成的,网上有很多例子,所以我不打算提供一个例子。

根据信息以及您希望如何使用它,将其存储到数据库可能更有益,因为即使您重新安装应用程序,配置也会保留(假设数据库在服务器上而不是应用程序的一部分 - sqlce)

最后要记住的一件事是您将在哪里使用您的配置设置。内置配置设置不适用于应用程序库 (dll)。因此,如果配置设置用于库,则必须创建自己的库。

最简单的解决方法是使用 ConfigurationManager。在您的项目下创建一个 .config (xml) 文件并将其命名为与您的 dll 相同的名称(即 AttachmentProcessor.dll.config)。这是您将设置与键/值对放在一起的地方。确保将文件属性“复制到输出目录”设置为“始终复制”或“如果较新则复制”。

配置示例:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>    
    <add key="AttachmentDirectory" value="C:\TestDir"/>
    <add key="FolderSlug" value="TEST"/>
  </appSettings>
</configuration>

然后在构造函数的代码中,您将读取配置文件:

var appConfig = ConfigurationManager.OpenExeConfiguration(Assembly.GetExecutingAssembly().Location);
attachmentDirectory = appConfig.AppSettings.Settings["AttachmentDirectory"].Value;
folderSlug = appConfig.AppSettings.Settings["FolderSlug"].Value;

然后,您将在需要的地方使用这些设置。

希望这有帮助!

于 2013-05-16T19:09:27.080 回答
1

在您的情况下,使用表格将是一种矫枉过正。试想一下,您可以说使用文件直接处理文件系统,而使用表,您将处理数据库引擎,然后再处理文件系统(这是一个很大的简化)。

您可以使用 txt 文件,然后定义您可能想要的任何格式。您可以在每一行中设置不同的设置,然后根据需要对其进行解析。如果您使用 txt 文件,则取决于您如何解析信息。

正如 Yaur 建议的那样,在您的情况下,最好使用应用程序的 app.config 文件。

这里有一个示例,说明如何使用配置管理器访问您的设置

于 2013-05-16T19:12:02.917 回答