本文介绍了动态调用 webservice 的三种方式。通常我们使用 "添加 Web 引用" 的方式创建客户端代理类来调用 WebService,但有时我们需要在程序运行期间动态调用一个未知的服务。在 NET Framework 的 System Web Services Description 命名空间中,我们可以找到需要的工具。具体步骤包括从目标 URL 下载 WSDL 数据、使用 ServiceDescription 创建和格式化 WSDL 文档文件、以及使用 ServiceDescriptionImporter 创建代理类。本文详细介绍了这三种方式的实现方法和注意事项。