我必须实现将放入GAC的.net程序集。它依赖于RDBMS连接字符串和一些额外的参数 - 我应该把它放在哪个最好的地方? Machine.config,注册表还是更合适的东西?
此类信息应放入使用组件的应用程序配置文件(app.config / web.config)中(如注意到的Marek Grzenkowicz),但如果应用程序配置由于某些原因而无法触及,该怎么办?
提前谢谢!
答案 0 :(得分:3)
您应该将此类信息放入使用程序集的app.config
/ web.config
应用程序文件中。这样就可以为每个这样的应用程序指定不同的设置。
答案 1 :(得分:2)
我认为这取决于您希望依赖程序集管理设置的程度。
注册表可以很好地满足一套一次不用考虑它的方法。使用注册表的缺点是缺乏对ADO.NET类中检索连接字符串的内置支持。
通过在应用程序的app.config或web.config中进行要求的设置,可以更好地满足这种可能不同的基于每个应用程序的方法。配置文件为许多与ADO.NET相关的类提供了内置连接字符串支持的额外好处。
我总是对修改machine.config有点怀疑。我无法解释为什么,除了设置是全局的。 machine.config中使用的每个连接字符串名称都是传播到其他配置的名称,必须使用,忽略或删除。它还使开发环境与生产同步变得复杂。也就是说,我不认为这些原因是避免machine.config的超级令人信服的理由。在做出决定之前,只需权衡权衡。
隔离存储中的自定义文件是另一种可行的选择,尽管它通常用于有限的信任环境中;由于GAC完全信任,隔离存储可能不是一个令人信服的选择。
答案 2 :(得分:1)
使用特定数据库的“组件”可能不应该首先在GAC中。
如果你真的需要这个,那么Connectionstring不是正常意义上的配置。您可能应该将其硬编码到您的程序集中。
请提醒我永远不要安装你的软件。