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")));