WCF服务的客户端配置文件的零依赖性
我们的目标是对WCF服务的客户端配置文件实现零依赖。 我们正在使用ConfigurationChannelFactory()创建通道并指定ConfigSettings 使用以下代码加载ConfigSettings ConfigurationManager.OpenExeConfiguration(ConfigFilePath) 因此,我们必须在这里提供ConfigFilePath 我们有windows和web客户端 我们使用了以下方法来找出路径WCF服务的客户端配置文件的零依赖性,wcf,configuration-files,Wcf,Configuration Files,我们的目标是对WCF服务的客户端配置文件实现零依赖。 我们正在使用ConfigurationChannelFactory()创建通道并指定ConfigSettings 使用以下代码加载ConfigSettings ConfigurationManager.OpenExeConfiguration(ConfigFilePath) 因此,我们必须在这里提供ConfigFilePath 我们有windows和web客户端 我们使用了以下方法来找出路径 AppDomain.CurrentDomain.B
AppDomain.CurrentDomain.BaseDirectory+“bin\\”+executingAssembly.GetName().Name+“.dll”
<hostingenvironment shadowcopybinassemblies="false">
但它增加了对客户端的依赖性
你们能帮我找到路径而不用担心客户吗?你们试过这个吗?我使用了
GetCallAssembly()
而不是GetExecutingAssembly()
,因为它存在于我们项目的实用程序类中
public static string AssemblyDirectory
{
get{
string codeBase = assembly.GetCallingAssembly().CodeBase;
UriBuilder uri = new UriBuilder(codeBase);
string path = Uri.UnescapeDataString(uri.Path);
return Path.GetDirectoryName(path);
}
}
你能探测两条路吗?换句话说,检查Path.Combine(AppDomain.CurrentDomain.BaseDirectory,“bin”)文件夹,如果在其中找不到配置文件,请检查Assembly.getExecutionGassembly().Location文件夹?既然您指出第一种方法适用于web但不适用于Windows客户端,而第二种方法适用于Windows客户端但不适用于web,那么请同时使用这两种方法