Silverlight 动态调用 WCF And WebService

1. 配置 IIS 绑定 IP地址

2. 在 SL 中引用 WebService

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

image

WCF :


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

 

 

传统 WebService:


 1BasicHttpBinding basicBinding = new BasicHttpBinding();
 2
 3CustomBinding binding = new CustomBinding(basicBinding);
 4
 5BindingElement binaryElement = new BinaryMessageEncodingBindingElement(); 
 6
 7EndpointAddress endPoint = new EndpointAddress("http://172.168.1.100/DynamicInvokeWCF.Web/Asmx.asmx");

 8
 9 AsmxSoapClient client  =  (AsmxSoapClient)Activator.CreateInstance( typeof (AsmxSoapClient), binding, endPoint);
10
11 client.HelloWorldCompleted  +=   new  EventHandler < HelloWorldCompletedEventArgs > (client_HelloWorldCompleted);
12
13 client.HelloWorldAsync(); 
14
15
 

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

你可能感兴趣的:(silverlight)