看起来我无法成功地将我的WCF代理代码移动到一个单独的DLL中(而不是像我在我遇到的所有示例中看到的那样)。
我试图这样做的原因是我希望我的代理代码由不同的客户端(可能是非托管代码)调用,这些代理可能对WCF一无所知但只需要访问服务(通过Facade)代理人暴露了吗?)。
每当我将以下代码移动到同一解决方案中的另一个VS项目时,我就会得到可怕的“无法在ServiceModel客户端中找到引用合同'localhost.IRemoteCommandService'的默认端点元素配置部分“例外。
localhost.RemoteCommandServiceClient proxy =
new localhost.RemoteCommandServiceClient();
只要在代理代码所在的同一项目中的Main方法中使用(从Visual Studio自动生成),相同的代码就可以顺利运行。
有什么想法吗?我希望我的代理的客户端代码不需要将服务模型XML配置作为代理,因为这会破坏我首先将WCF代理代码移动到DLL中的目的。
谢谢, 斯特凡诺
答案 0 :(得分:4)
通常在配置文件中指定端点。您必须查看配置文件中的serviceModel数据,并将其复制到您的调用app.config中 - 或者您需要使用在代码中创建代理的更详细的方法(即通过代码指定地址,绑定,配置等)对施工人员而言。)
答案 1 :(得分:2)
如果您不想在客户端上进行端点配置,则必须通过在代码中指定所有内容将其嵌入到代理dll中。
另一种选择是使用动态代理,例如one,这样您就不会在客户端应用中使用serviceModel。