如何在Web ASP项目中使用ConfigurationManager.OpenExeConfiguration()?
我无法更改用于获取配置信息的方法,因为它是其他人SDK中已编译DLL的一部分。我没办法改变它。
错误我得到了;
当不在独立的exe内部运行时,必须指定System.ArgumentException exePath。在System.Configuration.ConfigurationManager.OpenExeConfigurationImpl(ConfigurationFileMap fileMap,Boolean isMachine,ConfigurationUserLevel userLevel,String exePath,Boolean preLoad) at system.Configuration.ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel userLevel)
我尝试通过添加以下行来解决它;
AppDomain.CurrentDomain.SetData("APP_CONFIG_FILE", @"\\PathTo\Web.config");
但它没有解决问题。
我的下一个赌注是以某种方式覆盖ConfigurationManager.OpenExeConfiguration()
方法,以便它被调用,它应该调用ConfigurationManager.OpenWebConfiguration()
,这是同一方法的网络版本。
任何人都可以告诉我如何实现这个目标吗?
先谢谢了, -Aron
答案 0 :(得分:1)
为了确保我理解:对OpenExeConfiguration
的调用是在已编译的.dll中,您需要覆盖它以使其行为不同吗?
你不能。有人会编译一个只能在非网络环境中运行的库,这似乎很奇怪,除非他们排除了以任何其他方式使用它的可能性。
这是一个很长的镜头,但您可以尝试使用JetBrains dotPeek进行反编译。它可以导出一个可以编辑和重新编译的新Visual Studio项目。当我要么没有源代码或者不确定它是正确的源代码时,我必须这样做。
在反编译和浏览过程中,您甚至可以找到另一种加载配置设置的方法。