我正在编写与第三方应用程序互操作的应用程序。此应用程序通过 DLL 中的方法向开发人员公开 API。前段时间,这个应用程序的供应商开始将他们自己的 .NET 组件集成到他们的程序中,当他们这样做时,他们决定他们的组件应该使用 .NETConfigurationManager
在运行时获取设置。
这意味着:他们的程序 ,foo.exe
调用fooengine.dll
,并从 读取其设置foo.exe.config
。我的程序 ,bar.exe
也调用fooengine.dll
,它从 读取其设置bar.exe.config
。
嗯,这完全是错误的。但是我该如何解决呢?
foo.exe.config
简单的解决方法是将的设置复制到bar.exe.config
. 这会起作用,但它很愚蠢。这意味着从管理的角度来看,必须在 N 个不同的文件中维护给定的设置。这迟早会失败。
我尝试在我的配置文件中configSource
的部分上放置一个属性。appSettings
(碰巧,我正在使用该applicationSettings
部分进行设置,而他们正在使用该appSettings
部分进行设置,因此我可以简单地从不同的文件中获取该部分。)但ConfigurationManager
不喜欢这样:它想要路径configSource
不仅相对于我的程序目录,而且在我的程序目录之下。
我可以物理地将他们的设置文件读入一个XmlDocument
然后自己设置它们。但现在我将我的代码与他们的实现紧密耦合;如果他们发布了一个新版本,将设置移动到该applicationSettings
部分(现在应该是 2009 年的位置),我的代码将会中断。
还有其他方法吗?