C#从控制台应用程序调用SOAP Web服务

时间:2015-09-21 21:57:23

标签: c# web-services soap wsdl

这看起来非常微不足道,但根本不适用于我。我试图从我的c#控制台应用程序中调用soap web service。该应用程序是为.net 4.5构建的。这是我做的:

  
      
  • 通过将其指向wsdl,在visual studio 2013中添加了对项目的服务引用。它找到服务,它的运作正常。
  •   
  • 通过执行以下操作尝试创建该服务的实例:
  •   
            ServiceReference1 s = new ServiceReference1();

我收到以下错误代码:

Project1.ServiceReference1 is a 'namespace' but is used like a 'type'

有什么想法吗?我已经搜索了一段时间,并且不能遇到有真正解决方案同样问题的人。我将提供所需的更多信息。

2 个答案:

答案 0 :(得分:1)

如果您已将服务引用添加到项目中,则会看到该引用。在这种情况下,您保留了默认名称' ServiceReference1'。

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

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

现在您可以访问'客户端下的网络方法'对象

答案 1 :(得分:0)

创建服务引用时,Visual Studio 2013将生成可用于透明调用服务的代理类。默认代理名称空​​间为your_project_name.ServiceReference1。类型是您服务的名称。

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

var service = new ServiceReference1.YourService();

将返回Visual Studio生成的代理实例。然后,您将能够调用任何服务方法。