这可能吗?

问题描述:

我们正在考虑将一些“硬编码”设置移出我们的Windows窗体应用程序,并将它们存储在名为App_Settings的表中的sql数据库中。原因在于,我们目前已将值硬编码到Appsettings和app.config中,这些值可能会随时间而改变,并且更新数据库表中的值比更新,构建和部署应用程序更容易和更*台服务器。这可能吗?

请有人建议这个,以及我们如何将设置加载到应用程序,然后让他们随时可用在任何课程?

干杯 理查德

+1

如果它们在配置文件,那么它们不是**硬编码。 – Oded 2010-07-22 08:44:21

+0

要从数据库中检索它们,只需查询数据库(从您的代码中调用存储过程,或者使用ORM(如果您真的必须使用动态SQL)),然后将这些值填充到静态类中。 – slugster 2010-07-22 08:48:51

+1

这个问题的标题应该给出一些关于什么是问题的信息? – 2012-10-08 14:54:09

看一看这类似于螺纹:Resources/App.config or Database where is the best place to application strings

当你要存储在数据库中的设置,我会实现类为Singleton或至少为A类,只有静态/共享成员和工厂方法(getAppSettings),它返回单个/静态实例。所以你可以从任何地方访问你的设置,它只是初始化一次。

+0

我宁愿自己返回Singleton的工厂方法。唯一的补充是我会实现并从工厂返回一个接口,我发现配置在单元测试中可能会有点痛苦。 – 2010-07-22 09:09:49

为什么不使用类似YAML的东西来保存这些设置?创建一个表单可以很容易地编辑这些设置并将其保存在一个文件中,而不是一个数据库(这会增加更多的维护问题)。否则,我会建议使用像NHibernate这样的东西来使用数据库,SQLLite作为数据库服务器。

另外请注意,如果您要更新这些设置,我不会说这些都是App_Settings,因为App_Settings通常不modifyable没有

帮助这个帮助, 彼得