保存少量配置的最佳方法

时间:2013-05-16 18:24:28

标签: c# streamreader streamwriter

我必须保存我的设备的配置,并且一位朋友告诉我,因为它只是两(2)个字段,所以最好在.txt file上保存/读取它而不是创建一个表。这是真的吗? 它会更快吗?或者无关紧要?
如果是的话,我该怎么办呢? 我知道如何使用Write/ReadSystem.IO在文本文件中StreamReader/StreeamWriter 我只是想知道它是否真的更快,并且知道如何读取它并将值读取到配置....可能使用数组并使用Split

4 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分: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;

然后您可以根据需要使用设置。

希望这有帮助!

答案 2 :(得分:1)

在你的案例中使用表格会有些过分。 只是认为使用一个文件,你可以说直接处理文件系统,而对于一个表,你将处理一个数据库引擎,然后处理文件系统(这是一个很大的简化)。

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

正如Yaur所说,在您的情况下,最好使用应用程序的app.config文件。

Here您有一个使用Configuration Manager

访问设置的示例

答案 3 :(得分:1)

使用默认设置适用于此情况,您只需将设置的Scope设置为User即可。您可以更新并保存它:

Properties.Settings.Default.Writable = "new value";
Properties.Settings.Default.Save();