Silverlight 动态调用 WCF And WebService
1. 配置 IIS 绑定 IP地址
2. 在 SL 中引用 WebService
3. 在需要调用 WebService 的地方写下列代码:
WCF :
1
BasicHttpBinding basicBinding = new BasicHttpBinding();2

3
CustomBinding binding = new CustomBinding(basicBinding);4

5
BindingElement binaryElement = new BinaryMessageEncodingBindingElement(); 6

7
// 删除原来 Elements 集合内的 TextMessageEncodingBindingElement8

9
binding.Elements.Remove(binding.Elements[0]); 10

11
// 添加 BinaryMessageEncodingBindingElement12

13
binding.Elements.Insert(0, binaryElement);14

15
// wcf 地址16

17
EndpointAddress 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:
1
BasicHttpBinding basicBinding = new BasicHttpBinding();2

3
CustomBinding binding = new CustomBinding(basicBinding);4

5
BindingElement binaryElement = new BinaryMessageEncodingBindingElement(); 6

7
EndpointAddress 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 文件了.
Powered By D&J (URL:http://www.cnblogs.com/Areas/)
浙公网安备 33010602011771号