我基本上负责使用大量外部资源的项目的DLL。我想为我的项目命名为infrastructure.config配置一个配置文件,客户端项目可以在项目中复制而无需剪切并粘贴到自己的应用程序或Web配置中。我尝试了以下建议:
Change default app.config at runtime
该解决方案运行良好,直到我尝试使用自定义部分的Log4Net。当我尝试使用上面提到的链接中的代码时,我收到了一个未知的配置部分。当我使用没有上述代码的相同配置文件时,它工作正常。有趣的是,当我尝试使用TransactionScope时,它爆炸了。因此,使用TransactionScope和在我的配置中使用configurationSections的某些组合使其失败。有什么建议吗?
我希望每个客户端应用程序或网站都有自己的配置用于自己的值,而我的infrsatucture.dll应该能够拥有自己的值,自定义SOAP绑定和Log4Net的组合。
答案 0 :(得分:0)
听起来像Dependency Injection有助于解决问题。
我强烈建议您不要创建依赖于配置文件(应用程序设置或部分)的应用程序/ dll,而是让您的界面公开它需要做的工作。这些可以是由其他DLL(log4net)公开的外部类/接口,或者您可以创建自己的类,并允许其他开发人员根据您所需的抽象/接口类派生具体类。