代码之家  ›  专栏  ›  技术社区  ›  ashwnacharya

ASP.NET Web服务的ServiceContract类

  •  0
  • ashwnacharya  · 技术社区  · 16 年前

    我想在我的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服务非常复杂,有很多公开的方法,我不想全力以赴地编写服务契约接口。

    2 回复  |  直到 16 年前
        1
  •  1
  •   Graham Clark    16 年前

    这个 svcutil 工具就是你用来做这个的。这也是在Visual Studio中选择“添加服务引用”时在后台运行的内容。

    如果您在Visual Studio中工作,那么“添加服务引用”可能是最简单的,因为它应该自动启动服务以获取元数据。

    如果您不能或不想使用Visual Studio,则需要确保您的服务已启动并正在运行,然后使用svcutil.exe(如果打开.NET命令提示符,它将位于路径变量中)。如果您不想生成/覆盖客户机配置,或者您想为代理指定一个特定的类,那么有时需要使用svcutil。svcutil中还有一个方便的开关,它将在代理中生成通用集合,而不是默认为数组。

        2
  •  1
  •   Rubens Farias    16 年前

    您可以右键单击项目并选择 Add Service Reference ;它将获取Web服务WSDL并创建代理类。

    推荐文章