如何在不使用svcutil.exe工具的情况下创建WCF应用程序?
在不使用svcutil.exe的情况下构建WCF客户端的一种方法是使用ChannelFactory.您需要做的是在与服务实现的单独程序集中构建WCF服务接口.然后,您可以从客户端和服务中引用该接口程序集.
获得引用后,可以使用以下代码创建WCF客户端:
var factory = new ChannelFactory(); var wcfClient = factory.CreateChannel(); bool closedSuccessfully = false; try { // Now you can make calls on the wcfClient object ((ICommunicationObject)wcfClient).Close(); closedSuccessfully = true; } finally { if (!closedSuccessfully) { ((ICommunicationObject)wcfClient).Abort(); } }
请注意清理例程. 您无法可靠地使用using语句来清理wcfClient变量.如果这样做,并且对象处于故障状态,当using()块超出范围并且对wcfClient变量执行Dispose()时,将抛出异常.请参阅Jesse Ezell的博客
您使用的是哪个版本的Visual Studio?
VS2008结合了svcutil工具的功能.要生成代理,请单击解决方案资源管理器并选择"添加服务引用",然后您可以输入服务器的URL,为命名空间命名,然后关闭.
您可能希望扩展您的问题,以提供您希望实现的更多详细信息.