我必须保存我的设备的配置,并且一位朋友告诉我,因为它只是两(2)个字段,所以最好在.txt file
上保存/读取它而不是创建一个表。这是真的吗?
它会更快吗?或者无关紧要?
如果是的话,我该怎么办呢?
我知道如何使用Write/Read
和System.IO
在文本文件中StreamReader/StreeamWriter
我只是想知道它是否真的更快,并且知道如何读取它并将值读取到配置....可能使用数组并使用Split
?
答案 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文件。
访问设置的示例答案 3 :(得分:1)
使用默认设置适用于此情况,您只需将设置的Scope
设置为User
即可。您可以更新并保存它:
Properties.Settings.Default.Writable = "new value";
Properties.Settings.Default.Save();