代码之家  ›  专栏  ›  技术社区  ›  Xaqron

旧dll.config问题!

  •  1
  • Xaqron  · 技术社区  · 15 年前

    自从2005年我在谷歌上搜索后,对于需要从程序集的配置文件“*.dll.config”中读取程序集配置的人来说,这是一个问题,而微软还没有做任何事情。

    故事:如果你试图从类库(插件)中读取设置,你会失败。相反,主应用程序域(使用插件的exe)配置是读取的,并且由于可能没有这样的配置,您的插件将使用默认设置,当您第一次创建它的设置时,该设置是硬编码的。任何改变 .dll.config不会被您的插件看到,您想知道它为什么在那里! 如果您想替换它并开始搜索,您可能会发现如下内容: C# DLL config file 但只是一些想法和一行代码。当我们每次需要一个配置值时,一个好的内置配置替代品不应该从文件系统中读取,这样我们就可以将它们存储在内存中;那么,如果用户更改了配置文件呢?我们需要一个文件系统监视程序,我们需要一些像singleton这样的设计…最后,我们在同一点上,.NET的配置是除了我们的工作之外的。 看起来微软什么都做了,但忘记了为什么要建造 .DLL.CONFIG“。由于没有动态链接库将自己执行,它们是从其他应用程序引用的(即使在Web中使用),所以为什么会有这样一个“*.dll.config”文件? 我不会争论是否有多个配置文件是好的。这是我的设计(可插入组件)。

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

    2 回复  |  直到 14 年前
        1
  •  0
  •   Xaqron    15 年前

    找到了最佳解决方案(这不是真正的解决方案,总比什么都没有好):

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

    如果更新.config文件,它不会重新加载配置。应添加文件系统监视程序。

    自助软件

        2
  •  0
  •   yomismo    14 年前

    我遇到了一个类似的问题,我最终从DLL中完全删除了配置文件,并将其放在应用程序中,这样在初始化DLL所包含的类时,我会传递所有需要的参数。有点逃避,但现在一切正常。