1. 配置 IIS 绑定 IP地址

2. 在 SL 中引用 WebService

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

Silverlight 动态调用 WebService

WCF :

Silverlight 动态调用 WebServiceSilverlight 动态调用 WebServiceWCF 
BasicHttpBinding basicBinding = new BasicHttpBinding(); 
 
CustomBinding binding = new CustomBinding(basicBinding); 
 
BindingElement binaryElement = new BinaryMessageEncodingBindingElement(); 
 
// 删除原来 Elements 集合内的 TextMessageEncodingBindingElement 
Silverlight 动态调用 WebServicebinding.Elements.Remove(binding.Elements[0]); 
 
// 添加 BinaryMessageEncodingBindingElement 
 
binding.Elements.Insert(0, binaryElement); 
14Silverlight 动态调用 WebService 
15Silverlight 动态调用 WebService// wcf 地址 
16Silverlight 动态调用 WebService 
17Silverlight 动态调用 WebServiceEndpointAddress endPoint = new EndpointAddress("http://172.168.1.100/DynamicInvokeWCF.Web/DynWCF.svc"); 
18Silverlight 动态调用 WebService 
19Silverlight 动态调用 WebService// 创建 wcf 客户端 
20Silverlight 动态调用 WebService 
DynWCFClient client = (DynWCFClient)Activator.CreateInstance(typeof(DynWCFClient), binding, endPoint); 
 
client.DoWorkCompleted += new EventHandler<DoWorkCompletedEventArgs>(client_DoWorkCompleted); 
 
client.DoWorkAsync(); 
 

传统 WebService:

Silverlight 动态调用 WebServiceSilverlight 动态调用 WebServiceWebService 
1Silverlight 动态调用 WebServiceBasicHttpBinding basicBinding = new BasicHttpBinding(); 
2Silverlight 动态调用 WebService 
3Silverlight 动态调用 WebServiceCustomBinding binding = new CustomBinding(basicBinding); 
4Silverlight 动态调用 WebService 
5Silverlight 动态调用 WebServiceBindingElement binaryElement = new BinaryMessageEncodingBindingElement(); 
6Silverlight 动态调用 WebService 
7Silverlight 动态调用 WebServiceEndpointAddress endPoint = new EndpointAddress("http://172.168.1.100/DynamicInvokeWCF.Web/Asmx.asmx"); 
8Silverlight 动态调用 WebService 
9Silverlight 动态调用 WebServiceAsmxSoapClient client = (AsmxSoapClient)Activator.CreateInstance(typeof(AsmxSoapClient), binding, endPoint); 
10Silverlight 动态调用 WebService 
11Silverlight 动态调用 WebServiceclient.HelloWorldCompleted += new EventHandler<HelloWorldCompletedEventArgs>(client_HelloWorldCompleted); 
12Silverlight 动态调用 WebService 
13Silverlight 动态调用 WebServiceclient.HelloWorldAsync(); 
14Silverlight 动态调用 WebService 
15Silverlight 动态调用 WebService

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

相关文章: