这似乎在互联网上被问到很多,但到目前为止,我的研究还没有产生解决方案。 (并且,至少就目前而言,我还没有接受“它无法完成”作为解决方案。)
在最简单的描述中,我要做的是在.NET类库项目中有一个配置文件,该类在任何引用它的应用程序中都可用于该类库。我的设置可以简化为共享一些域逻辑的3个WCF服务。他们共享的一件事是记录器的注入依赖。在这种情况下,我有一个单独的库,使用log4net实现记录器(这个库是注入的)。
在此设置中,3个服务中的每个服务都有自己的配置文件,每个配置文件都需要配置log4net。我想要做的是将完全抽象的log4net放入单独的库中,这样这3个服务(以及将来会有很多服务/应用程序)不必携带该配置。它们都将以相同的方式配置,所以我宁愿它在一个地方。
到目前为止,我已经设法找到一些代码,允许appsetttings(键/值对)的库本地化配置文件,我可以访问它。但我正在寻找更完整的配置文件方法。 Log4net有一个自定义配置部分,它不仅仅是键/值对。 (其他配置部分也将用于多个应用程序,例如客户端应用程序用于连接到WCF服务的公共库中的system.serviceModel部分。)
这有意义吗?以前有人想出这种解决方案吗?
答案 0 :(得分:2)
你真的不能拥有类库的.config文件和可执行文件一样!但是,类库当然可以读取和写入xml文件,因此您可以在某种程度上伪造它。 This代码项目文章介绍了这样做的一种方法,如果有其他类似的解决方案,我不会感到惊讶,因为正如你所说,这是一个常见的问题。