我可以将配置文件用于键值对吗?

时间:2010-11-01 16:55:15

标签: c# .net asp.net

我有几个键值对或映射值,比如 例如:液体制造 - >处理+配料+灌装+密封

有几个这样的键值对。这些值可能会经常更改。 什么是最佳做法?我可以将它们保存到基于XML的配置文件吗?还是数据库? 我可以将它们放在配置文件中并将其读入字典并在我的应用程序中使用它吗?

感谢您的投入。

“他们什么时候会改变?用户可以更改它们还是在安装应用程序时更改?是每个用户还是每个应用程序的设置?该设置是否仅对一台机器有效,或者相同的设置是否适用于客户端几台机器?“

用户无法更改它们。设置适用于整个应用程序,所有机器。

5 个答案:

答案 0 :(得分:2)

您可以使用web.config的<{1}}

appSettings

使用

访问代码中的值
<appSettings>
   <add key="myKey" value="myValue"/>
</appSettings>

答案 1 :(得分:1)

我个人会使用一个简单的数据库表,尽管您可以使用appSettings部分来存储键/值。

http://msdn.microsoft.com/en-us/library/system.configuration.configurationmanager.appsettings.aspx

还有一个保存配置文件的选项,因此它们不是静态的。

答案 2 :(得分:1)

我更喜欢将资源文件用于这些类型的事情。它们仍然是基于文本的文件,可以在不影响网站的情况下即时更改。有时我会将它们加载到global.asax中应用程序级别的变量中,有时我会根据需要将它们加载。

http://kumarnitesh.wordpress.com/2008/04/16/how-to-use-resource-file-in-c/
http://msdn.microsoft.com/en-us/library/ekyft91f(v=VS.100).aspx
http://msdn.microsoft.com/en-us/library/1ztca10y(v=VS.85).aspx

编辑:我选择不在web.config中添加这些内容的一个原因是web.config可以在任何大小的应用程序中快速增长。使用资源文件,可以将设置拆分为您选择的分组,以便更新一组特定设置不会意外覆盖或损害其他区域的任何设置。我仍然使用web.config进行全局应用程序设置,但是对于可能特定于页面或特定应用程序的其他设置,我保留了这些设置。

答案 3 :(得分:0)

我会创建一个包含KEY和VALUE列的表并将其存储在那里。然后编写一个包装类来处理该表的事务(CREATE / READ / UPDATE / DELETE)

如果您想要跟踪谁更改配置设置以及何时(如果您有一个用户/管理员可以更改这些设置的屏幕),您也可以拥有“CREATED_BY”,“CREATED_DATE”,MODIFIED_BY“,”MODIFIED_DATE“列。设置)。

在web.config中出现这些问题会带来一个问题。无论何时更新web.config,会话都将丢失。它将重新启动应用程序。

答案 4 :(得分:-1)

Windows注册表非常适合。