【发布时间】:2011-03-30 18:43:36
【问题描述】:
我有一个 WCF 服务和客户端 DLL,其中包含我的 WCF 服务的代理类。我的客户端 dll 将由不同的 exe 运行。我在将客户端 app.config 文件添加到 exe 位置时受到限制。我不能这样做 myExe.exe.config。我想在客户端 dll 本身中加载客户端 app.config 文件,或者应该从其他位置加载 app.config 文件。
我的 exe 是 C++。
有什么办法吗?
【问题讨论】:
我有一个 WCF 服务和客户端 DLL,其中包含我的 WCF 服务的代理类。我的客户端 dll 将由不同的 exe 运行。我在将客户端 app.config 文件添加到 exe 位置时受到限制。我不能这样做 myExe.exe.config。我想在客户端 dll 本身中加载客户端 app.config 文件,或者应该从其他位置加载 app.config 文件。
我的 exe 是 C++。
有什么办法吗?
【问题讨论】:
要显式加载特定配置,您需要在单独的 AppDomain 中启动该对象。使用采用 AppDomainSetup 的 AppDomain.CreateDomain 重载之一,您可以在其中传递配置文件的路径。您需要确保可以跨 AppDomain 边界编组任何返回值。不,据我所知,没有更简单的方法可以做到这一点。
【讨论】:
这实际上是 .NET 的标准问题。通常,当您创建将构建到 dll 中的单独项目时,您可以在 app.config 文件中创建设置。这些设置不会自动成为使用 DLL 的应用程序的 web.config 的一部分。
“解决方案”一直是:从库的 app.config 复制并粘贴,然后粘贴到使用应用程序的 app.config 或 web.config。
这实际上具有一定的意义:这些配置设置旨在根据代码执行的环境进行更改。 WCF 客户端的一组配置存储在一个位置,让我们回到了注册表的时代。
【讨论】: