2010-11-01 86 views
2

我有几个密钥值对或映射值,像 例如:液体制造 - >处理+配料+灌装+封口我可以使用配置文件作为键值对吗?

有几种这样的密钥值对。这些值可能会频繁更改。 最佳做法是什么?我可以将它们保存到基于XML的配置文件吗?或数据库? 我可以让他们在一个配置文件中,并将其读入字典并在我的应用程序中使用它?

谢谢您的输入。

“它们何时会更改?用户是否可以更改它们,或者在安装应用程序时是否更改?是每个用户还是每个应用程序的设置?设置仅适用于一台计算机还是适用于客户端在几台机器上?“

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

+2

他们什么时候改变?用户可以更改它们,或者在安装应用程序时是否更改?每个用户或每个应用程序的设置是?该设置仅适用于一台机器还是适用于多台机器上的客户机? – 2010-11-01 16:58:27

+0

你可以做任何这些事情;这取决于你将如何使用它们。我建议你编辑你的问题,并添加更多的细节! – 2010-11-01 17:17:08

回答

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进行全局应用程序设置,但对于可能特定于某个页面或特定应用程序片段的其他设置,我会保留这些设置。

+0

我认为这是我可以实现的最佳方法。 – Ram 2010-11-01 18:02:28

1

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

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

有保存配置文件以及因此它们不是静态的选项。

+0

我的数据库管理员正在背后痛苦。他希望我在数据库上定义关系。 – Ram 2010-11-01 17:04:48

+0

@Ram - 当然他必须意识到,并非数据库中的每个表都与其他事物有关。 – 2010-11-01 17:08:58

2

您可以使用您的appSettings的web.config

<appSettings> 
    <add key="myKey" value="myValue"/> 
</appSettings> 

访问代码中的值与

string myValue = ConfigurationManager.AppSettings["myKey"]; 
0

我将创建一个具有键和值列的表,并将其存储在那里。然后编写一个包装类来处理这个表中的事务(CREATE/READ/UPDATE/DELETE)

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

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

+0

“在web.config中有这些会带来一个问题。无论何时更新web.config,会话都会丢失,它将重新启动应用程序。” @Shyju - 这是否也适用于资源文件? – Ram 2010-11-01 18:03:59

-1

Windows注册表是完美的。

+0

为什么选择投票? – Chalky 2015-01-25 09:10:12

相关问题