c#从控制台应用程序调用SOAP web服务

本文关键字:SOAP web 服务 调用 应用程序 控制台 | 更新日期: 2023-09-27 18:13:46

这看起来很琐碎,但对我来说根本不起作用。我正试图从我的c#控制台应用程序中调用soap web service。该应用程序是为。net 4.5构建的。我是这样做的:

  • 在visual studio 2013中通过将服务引用指向wsdl来为项目添加服务引用。它找到了服务,操作正常。
  • 尝试通过执行以下操作创建该服务的实例:
            ServiceReference1 s = new ServiceReference1();
我得到以下错误代码:
Project1.ServiceReference1 is a 'namespace' but is used like a 'type'

任何想法?我已经为此搜索了一段时间,但没有遇到有人有同样的问题,并有一个真正的解决方案。我将提供更多需要的信息。

c#从控制台应用程序调用SOAP web服务

如果您已经将服务引用添加到项目中,您将看到该引用。在本例中,您保留了默认名称'ServiceReference1'。

现在您想要调用web服务的方法,为此您必须实例化一个SOAPClient。

    ServiceReference1.YourWebserviceNameSoapClient client = new  ServiceReference1.YourWebserviceNameSoapClient();
    client.HelloWorld(); // call of webmethod

现在你在'client'对象下访问webmethods

当你创建一个服务引用时,Visual Studio 2013将生成一个代理类,你可以使用它来透明地调用该服务。默认代理命名空间为"your_project_name.ServiceReference1"。类型是您的服务的名称。

以业务"http://localhost/YourService.svc"为例。您从控制台项目ConsoleApp生成服务引用ServiceReference1。生成的文件命名空间为ConsoleApp.ServiceReference1。类型为YourService

var service = new ServiceReference1.YourService();

将返回一个由Visual Studio生成的代理实例。然后你就可以调用任何服务方法了