回答
看起来你有两个单独的问题。
程序的用户都不会想到在配置两个应用程序和任何相关的DLL的条款。在我看来,拥有一个单独的DLL配置文件可能会让用户感到困惑。这不是坏设计有一个单独的配置文件,但它不一定好设计。
DLLs肯定可以读取文件。检查DLL是否从正确的位置读取文件(例如,检查当前的工作目录)。
这是我想在某些地方看到的东西。它可以使附加配置远离中央代码。 App.Config享受快速失控的方式。 (是的,我知道你可以用configSource手动分割文件......这样做的好处是让管理员选择分割而不是开发者。) – 2010-07-22 20:06:17
哦,你可能想使用程序集的相对路径而不是工作路径。使工作路径与实际运行代码不同的位置非常容易。 – 2010-07-22 20:08:05
也许不是一个单独的配置文件,但你可以很容易地为每个DLL设置一个单独的配置节。那么很容易在多个来源中使用。
使一个DLL依赖于一个配置文件是不理想的,并且当你开始单元测试或移动它时可能会变成真正的痛苦。
更好的解决方案是从调用应用程序中的配置设置中传递任何值,例如, Web应用程序或Windows应用程序等,并存储应用程序或Web配置中所需的任何设置。
+1,隐藏的依赖是魔鬼。 – 2010-07-22 20:11:52
我不确定任何测试配置相关的单元测试真的是一个很好的测试... – 2010-07-22 20:27:26
我倾向于将配置选项传递给每个需要它们的图层。然后配置文件将作为最上层的传递约定。这对我最有意义。
在这个场景中,一个DLL不需要读取配置文件。
我对此的推理归结为关注的分离。除非DLL的要点是读取硬盘驱动器上的文件,否则它不应该读取硬盘驱动器上的任何文件。
这实际上取决于使用情况。对于只是主应用程序的一部分的DLL,不能。但是,对于某些插件场景,包含特定于库的配置可能会更清晰,然后您必须在程序集本身中提供其负载。你也可以通过修改应用程序自己的配置文件来做到这一点,如果它有。
因此,例如,你可能有以下具体的插件设置:
<IPluginConfiguration>
<PluginSpecificSetting name="PluginName">Value</PluginSpecificSetting>
</IPluginConfiguration
,或者你可能在一个app.config用款,像
<configuration>
<PluginSettings>
<Plugin1>
<PluginSpecificSetting name="PluginName">Value</PluginSpecificSetting>
</Plugin1>
</PluginSettings>
</configuration>
要么将工作,前者在某些情况下维护要简单一些,但在运行时加载会更痛苦,后者需要更多配置和维护,但在运行时可以更简单地访问。
- 1. 从单独的配置文件读取设置
- 2. 如何为dll库设置配置值
- 3. 是否可以将URL重写配置置于单独的配置文件中?
- 4. 好的设计为参数,涉及到单个配置
- 5. 单独设置SO_TIMEOUT
- 6. devise with omniauth - 为开发和生产设置单独的配置
- 7. Android设置|(文件)配置
- 8. Regex.CompileToAssembly如何设置.dll文件位置
- 9. POM文件配置是否覆盖Spring Tool Suite配置的默认设置?
- 10. 为简单的PHP登录脚本设置配置文件
- 11. MySQL - 数据库设计 - 用户和配置文件的单独表格
- 12. 是否有可能为Toastr单独设置超时?
- 13. RoR:设计和配置文件
- 14. 设计CanCan角色和配置文件
- 15. 设计和用户配置文件
- 16. 数据库设计 - 配置/设置表
- 17. 设计模式和配置设置
- 18. 配置和设计
- 19. 是否有确认配置设置已设置
- 20. PickerView为行设置单独的颜色
- 21. 是否可以为文件“passwd”设置不同的位置?
- 22. 设置配给配置文件到期
- 23. 在Spring.NET配置文件中使用设置的更好方法?
- 24. 将asp.net成员资格特定设置移至单独的配置文件
- 25. 为Django应用程序设置单独的媒体文件夹
- 26. 在Wordpress中设置一个单独的文件作为主页
- 27. 是否可以告诉NSIS设置配置文件中列出的文件?
- 28. 创建设置的dll文件
- 29. 为设备ID创建设置配置文件
- 30. 如何在Hive-Site.xml文件中为配置单元Metastore连接设置配置?
感谢大家的回答。意见似乎倾向于维护一个配置文件。我正在考虑维护多个配置文件。 (Windows Admin Nightmare) 现在我需要找出为什么我的DLL能够读取machine.config文件,但不能读取app.dll.config文件。 – abhi 2010-07-22 20:58:06