我想在我的C#客户端应用程序中调用web服务。我希望能够动态地绑定到这个web服务。
我使用以下代码来动态调用web服务:
class Program
{
interface IInterface
static void Main(string[] args)
{
BasicHttpBinding bin = new BasicHttpBinding();
EndpointAddress endPoint = new EndpointAddress("http://api.wxbug.net/webservice-v1.asmx");
IInterface myInterface = ChannelFactory<IInterface>.CreateChannel(bin,endPoint);
}
}我的问题是,如何为我的web服务生成ServiceContract接口?有没有什么工具可以自动生成这个?这是因为我的目标web服务相当复杂,有很多公开的方法,而且我不想手把手地编写服务合同接口。
发布于 2010-01-22 17:15:58
您可以使用svcutil工具来完成此任务。这也是当您在Visual Studio中选择“添加服务引用”时在幕后运行的内容。
如果你在Visual Studio中工作,那么“添加服务引用”可能是最简单的,因为它应该自动启动你的服务以获取元数据。
如果您不能或不想使用Visual Studio,则需要确保您的服务已启动并正在运行,然后使用svcutil.exe (如果您打开.Net命令提示符,它将位于path变量中)。如果你不想生成/覆盖客户端配置,或者你想为代理指定一个特定的类,那么有时使用svcutil是必要的。在svcutil中还有一个方便的开关,它将在代理中生成泛型集合,而不是缺省为数组。
发布于 2010-01-21 20:34:45
您可以右键单击您的项目并选择Add Service Reference;它将获取您的web服务WSDL并创建您的代理类。
https://stackoverflow.com/questions/2108745
复制相似问题