silverlight   发布时间:2022-05-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Silverlight中的ServiceReferences.ClientConfig大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

        做过Silverlight项目的朋友都知道一般来说我们在Silverlight项目中都需要引用Webservice或是WCF,引用的方式是在Visual studio窗口中通过“添加服务引用”来添加引用,这时Visual studio会生成一个 serviceReferences.CLIENtConfig 配置文件,这个文件中存储了Webservice的地址,绑定等信息,我们在Si
        做过Silverlight项目的朋友都知道一般来说我们在Silverlight项目中都需要引用Webservice或是WCF,引用的方式是在Visual studio窗口中通过“@L_696_1@服务引用”来@L_696_1@引用,这时Visual studio生成一个 serviceReferences.CLIENtConfig 配置文件,这个文件中存储了Webservice的地址,绑定等信息,我们在Silverlight中实例化Webservice的代理类时需要用到这个文件,没有这个文件Webservice代理类的实例化就会失败。

        使用serviceReferences.CLIENtConfig的方式来实例化Webservice代理类比较简单,但是也有一个缺点,就是每次将Silverlight项目上线时都需要手工打开生成的XAF包,将serviceReferences.CLIENtConfig文件中的Webservice地址从http://Localhost/YourProject/YourWebservice.asmx的形式改为http://YourDomain/YourProject/YourWebservice.asmx,如果某次你忘记了修改,可能会导致你的Siverlight项目在线上无法正常运行。

        实现原理很简单,就是在一个类里手工的构造Webservice的EndPoint,Binding等信息,将serviceReferences.CLIENtConfig的作用用代码来代替,示例实现代码如下,代码很简单,各位一看就明白。

///<sumMary>
/// 得到Webservice对象
/// 以后实例化Webservice代理时请用var serviceClient = Utility.GetDesignerserviceInstance();的形式,
///     不要再用认的 var serviceClient = new WSDesignerSoapClient();
/// 后一种形式会报错,因为我们删除serviceReferences.CLIENtConfig文件
///</sumMary>
///<returns></returns>
       public static WSDesignerSoapClient GetDesignerserviceInstance()
       {
           var basicBinding = new BasichttpBinding() { 
                                                       MaxBufferSize = int.MaxValue,MaxReceivedmessageSize = int.MaxValue,Name = "WSDesignerSoap" 
                                                      };
           basicBinding.Security.Mode = BasichttpS@L_386_26@mode.None;
           var endPoint = new EndpointAddress(getHosturl() + "/Webservice.asmx");
           var ctor =
               typeof (WSDesignerSoapClient).GetConstructor(new Type[] {typeof (Binding),typeof (EndpointAddress)});
           return (WSDesignerSoapClient) ctor.Invoke(new object[] {BasicBinding,endPoint});
       }

       ///<sumMary>
/// 得到当前所在网站的根目录,如http://localhost/flow
/// 注意站点名字必须是Flow,否则会报错。
///</sumMary>
///<returns></returns>
       private static  String getHosturl()
      {
            var LOCATIOn = (HtmlPage.Window.GetProperty("LOCATIOn")) as ScriptObject;
            var hrefObject = LOCATIOn.GetProperty("href");
            String url = hrefObject.ToString().SubString(0,hrefObject.ToString().IndexOf("Flow/") + 5);
            return url;
       }@H_262_29@ 
 
PS:本文在写作中参了:[Silverlight]摆脱对 serviceReferences.CLIENtConfig 的依赖

  本文来自张荣华的@L_801_30@,原文地址:http://www.cnblogs.com/zhangronghua/archive/2011/11/22/SilverlightRemoveConfigDependency.html

大佬总结

以上是大佬教程为你收集整理的Silverlight中的ServiceReferences.ClientConfig全部内容,希望文章能够帮你解决Silverlight中的ServiceReferences.ClientConfig所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。