动态调用 WebService

1. 配置 IIS 绑定 IP地址

2. 在 SL 中引用 WebService

3. 在需要调用 WebService 的地方写下列代码:

动态调用 WebService_binding

WCF :

 

 

 

动态调用 WebService_3c_02动态调用 WebService_wcf_03WCF
 1动态调用 WebService_3c_04BasicHttpBinding basicBinding = new BasicHttpBinding();
 2动态调用 WebService_3c_04
 3动态调用 WebService_3c_04CustomBinding binding = new CustomBinding(basicBinding);
 4动态调用 WebService_3c_04
 5动态调用 WebService_3c_04BindingElement binaryElement = new BinaryMessageEncodingBindingElement(); 
 6动态调用 WebService_3c_04
 7动态调用 WebService_3c_04// 删除原来 Elements 集合内的 TextMessageEncodingBindingElement
 8动态调用 WebService_3c_04
 9动态调用 WebService_3c_04binding.Elements.Remove(binding.Elements[0]); 
10动态调用 WebService_3c_04
11动态调用 WebService_3c_04// 添加 BinaryMessageEncodingBindingElement
12动态调用 WebService_3c_04
13动态调用 WebService_3c_04binding.Elements.Insert(0, binaryElement);
14动态调用 WebService_3c_04
15动态调用 WebService_3c_04// wcf 地址
16动态调用 WebService_3c_04
17动态调用 WebService_3c_04EndpointAddress endPoint = new EndpointAddress("http:");
//172.168.1.100/DynamicInvokeWCF.Web/DynWCF.svc18动态调用 WebService_3c_04
19动态调用 WebService_3c_04// 创建 wcf 客户端
20动态调用 WebService_3c_04
21动态调用 WebService_3c_04DynWCFClient client = (DynWCFClient)Activator.CreateInstance(typeof(DynWCFClient), binding, endPoint);
22动态调用 WebService_3c_04
23动态调用 WebService_3c_04client.DoWorkCompleted += new EventHandler<DoWorkCompletedEventArgs>(client_DoWorkCompleted);
24动态调用 WebService_3c_04
25动态调用 WebService_3c_04client.DoWorkAsync();
26动态调用 WebService_3c_04
27动态调用 WebService_3c_04

 

 

传统 WebService:

动态调用 WebService_3c_02动态调用 WebService_wcf_03WebService
 1动态调用 WebService_3c_04BasicHttpBinding basicBinding = new BasicHttpBinding();
 2动态调用 WebService_3c_04
 3动态调用 WebService_3c_04CustomBinding binding = new CustomBinding(basicBinding);
 4动态调用 WebService_3c_04
 5动态调用 WebService_3c_04BindingElement binaryElement = new BinaryMessageEncodingBindingElement(); 
 6动态调用 WebService_3c_04
 7动态调用 WebService_3c_04EndpointAddress endPoint = new EndpointAddress("http:");//172.168.1.100/DynamicInvokeWCF.Web/Asmx.asmx
 8动态调用 WebService_3c_04
 9动态调用 WebService_3c_04AsmxSoapClient client = (AsmxSoapClient)Activator.CreateInstance(typeof(AsmxSoapClient), binding, endPoint);
10动态调用 WebService_3c_04
11动态调用 WebService_3c_04client.HelloWorldCompleted += new EventHandler<HelloWorldCompletedEventArgs>(client_HelloWorldCompleted);
12动态调用 WebService_3c_04
13动态调用 WebService_3c_04client.HelloWorldAsync(); 
14动态调用 WebService_3c_04
15动态调用 WebService_3c_04

 

这样就可以动态的调用 webservice 了.  完全不需要 ServiceReferences.ClientConfig 文件了.