Silverlight 动态调用 WebService

1. 配置 IIS 绑定 IP地址

2. 在 SL 中引用 WebService

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

image

WCF :

WCF 
BasicHttpBinding basicBinding = new BasicHttpBinding(); 
 
CustomBinding binding = new CustomBinding(basicBinding); 
 
BindingElement binaryElement = new BinaryMessageEncodingBindingElement(); 
 
// 删除原来 Elements 集合内的 TextMessageEncodingBindingElement 
binding.Elements.Remove(binding.Elements[0]); 
 
// 添加 BinaryMessageEncodingBindingElement 
 
binding.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 
DynWCFClient client = (DynWCFClient)Activator.CreateInstance(typeof(DynWCFClient), binding, endPoint); 
 
client.DoWorkCompleted += new EventHandler<DoWorkCompletedEventArgs>(client_DoWorkCompleted); 
 
client.DoWorkAsync(); 
 

传统 WebService:

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

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

posted @ 2011-08-25 13:09  Areas  阅读(238)  评论(0编辑  收藏  举报