在C#中動態調用WSDL服務可以使用ServiceModel.ClientBase
類來實現。以下是一個示例代碼:
using System;
using System.ServiceModel;
namespace DynamicWSDLClient
{
class Program
{
static void Main(string[] args)
{
// 創建動態綁定
BasicHttpBinding binding = new BasicHttpBinding();
EndpointAddress endpointAddress = new EndpointAddress("http://www.example.com/Service.svc");
// 創建ChannelFactory
ChannelFactory<IService> factory = new ChannelFactory<IService>(binding, endpointAddress);
IService client = factory.CreateChannel();
// 調用服務方法
string result = client.MyServiceMethod();
Console.WriteLine(result);
}
}
[ServiceContract]
public interface IService
{
[OperationContract]
string MyServiceMethod();
}
}
在上面的示例中,首先創建了一個動態綁定,并指定了WSDL服務的地址。然后創建了一個ChannelFactory
對象,并傳入綁定和服務地址。最后通過CreateChannel
方法創建了一個實現了IService
接口的代理對象,通過該對象可以調用WSDL服務中定義的方法。