Silverlight:如何在使用WCF的时候动态指定服务地址

因为Silverlight做好的组件可以用在任意的网站,而其调用的WCF服务一般都不可能将地址固定地写在Silverlight控件内部,如何保持这种灵活性呢?

关键在于通过Application.Current.Host可以获取到一些必要的信息,请看下面的例子

BasicHttpBinding binding = new BasicHttpBinding(
Application.Current.Host.Source.Scheme.Equals("https", StringComparison.InvariantCultureIgnoreCase)? 
BasicHttpSecurityMode.Transport : 
BasicHttpSecurityMode.None); 
binding.MaxReceivedMessageSize = int.MaxValue; 
binding.MaxBufferSize = int.MaxValue; 
return new ProductServiceClient(binding, 
new EndpointAddress(new Uri(Application.Current.Host.Source, "../ProductService.svc")));
posted @ 2010-01-22 21:31  陈希章  阅读(501)  评论(0编辑  收藏  举报