在我目前的解决方案中,我有18个项目,其中大多数都有自己的配置文件(app.config或web.config)。每个项目都使用单个共享BLL程序集。我正在使用Autofac来处理依赖关系,但没有采用合适的方式来管理我的配置。 配置条目大致相同,但值不同。有些项目使用自定义配置,有些则不使用。
我最终得到了:
我对Autofac和DI非常陌生,并努力在复杂性和可扩展性之间找到一个很好的平衡。
是否有更好的方法来管理配置文件?
谢谢。
答案 0 :(得分:4)
在Autofac中,您可以使用模块来实现此目的。相关组件组封装在一个模块中,该模块由程序化API配置。
Autofac的XML配置支持模块,因此一旦您决定在应用程序中使用它,就可以在配置文件中注册模块(而不是它包含的所有组件)。
模块支持可以转发到内部组件的参数,例如连接字符串,URI等
此处的文档可以帮助您入门:http://code.google.com/p/autofac/wiki/StructuringWithModules
HTH
尼克
答案 1 :(得分:3)
根据经验,我只将依赖配置放在.config文件中,如果它们代表我希望能够在不重新编译应用程序的情况下进行更改。默认情况下,我没有这样的配置。
我(还)不知道AutoFac,但是在Castle Windsor中,你可以混合.config和容器的程序化配置,这就是我通常做的事情:我在.config中配置了一些依赖项,因为我想要能够在不重新编译的情况下更改它们,但其余部分在代码中注册(通常按惯例)。
我接近类似于你的问题的方法是创建一个包含专用容器的独立库 - 这听起来很像你的方法。这个专用容器封装了所有常见的依赖配置。
在每个应用程序中,我都有一个更加专业化的容器,它派生自共享容器并覆盖它需要覆盖的任何配置。
我理解你的描述的方式,这种方法似乎与你的描述并不太远,但是让自己受宠,并尽可能多地从XML和代码中移动配置 - 这实际上变得更易于管理。 / p>