老dll.config问题!

时间:2010-05-30 12:19:39

标签: .net configuration

自2005年以来,我搜索了一个问题,谁需要从配置文件“* .dll.config”中读取程序集的配置,而且Microsoft还没有做任何事情。

故事:如果您尝试从类库(插件)中读取设置,则会失败。而是读取主应用程序域(使用插件的EXE)配置,因为可能没有这样的配置,您的插件将使用默认设置,当您第一次创建它的设置时,该设置是硬编码的。您的插件无法看到 .dll.config的任何更改,您想知道为什么会出现这种情况! 如果你想替换它并开始搜索,你可能会发现这样的事情: C# DLL config file 但只是一些想法和一个行代码。每当我们需要配置值时,内置配置的良好替代品不应从文件系统读取,因此我们可以将它们存储在内存中;如果用户更改配置文件怎么办?我们需要一个FileSystemWatcher,我们需要一些像singleton这样的设计......最后我们处于.NET的同一点配置,除了我们的工作。 似乎MS做了一切,但忘记了为什么他们建立了“ .dll.config”。由于没有DLL会自行执行,因此它们会从其他应用程序中引用(即使在Web中使用),那么为什么会出现这样的“* .dll.config”文件呢? 我不会争论是否有多个配置文件是好的。这是我的设计(可插拔组件)。

最后{ 这些年之后,有没有很好的做法,比如在每个组件中添加一个自定义设置类,并从它自己的配置文件中读取? }

2 个答案:

答案 0 :(得分:0)

发现最佳解决方案(这不是一个真正的解决方案,比什么都没有好):

http://www.windowsdevelop.com/windows-forms-general/make-mysettings-use-dllconfig-39406.shtml

如果更新.config文件,则不会重新加载配置。应该添加一个FileSystemWatcher。

自助服务SOF

答案 1 :(得分:0)

我有类似的问题,我最终完全删除了dll中的配置文件并将其与应用程序放在一起,这样在初始化DLL包含的类时,我传递了所有需要的参数。有点警察,但现在工作正常。