随笔 - 290  文章 - 10  评论 - 85  2

1.如何调试silverlight,如果是调试客户端,有2个方法,一个是程序设置为Out of Browser模式,下载安装后就可以调试,另一个是附加到iexplorer进程里面。 而服务器端不能和客户端在同一个IDE同时调试,可以开多一个VS2010调试 

2.Silverlight的调用方法都是Async异步的,所以你调用时都要先加一个{XXXAction}Complete事件的委托 

3.如何传参数给silverlight对象呢?

<div id="silverlightControlHost">
        <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="480" height="160">
          <param name="source" value="FileUpLoadTest.xap"/>
          <param name="onError" value="onSilverlightError" />
          <param name="onLoad" value="onPluginLoaded" />
          <param name="background" value="white" />
          <param name="minRuntimeVersion" value="5.0.61118.0" />
          <param name="autoUpgrade" value="true" />
          <param name="initParams" value="serviceUrl=http://localhost:7553/Service1.svc" />
          <href="http://go.microsoft.com/fwlink/?LinkID=149156&v=5.0.61118.0" style="text-decoration:none">
               <img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="获取 Microsoft Silverlight" style="border-style:none"/>
          </a></object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe></div> 

 后台取值代码

if (e.InitParams != null && e.InitParams.Keys.Contains("serviceUrl"))  

4. Silverlight 没有md5 hash的实现,但可以用SHA1的Hash来代替

System.Security.Cryptography.SHA1 sha1 = new System.Security.Cryptography.SHA1Managed();
byte[] buffer=new byte[1024];
stream.Read(buffer, 01024);
byte[] hashBytes=sha1.ComputeHash(buffer); 


5. Silverlight5之前的跨域访问真是坑爹!用那个clientaccesspolicy.xml怎么试都不行。严重怀疑微软的文档有误导!改用Silverlight5,勾上“在浏览器内运行时需要提升的信任”, 把缓存清掉,不再需要那个clientaccesspolicy.xml了。跨域访问很轻松就做到了! 

6. 如何在Silverlight里面拿到URl的QueryString? 

IDictionary<String, String> paras = HtmlPage.Document.QueryString;
this.lblParam.Text = paras["Name"];

 7. 如何在Silverlight里面Call 页面的Javascript 

JavaScript:
function
 onSilverlightButtonClick(Name) {
     alert("onSilverlightButtonClick: " + Name);
}       


C#:if (HtmlPage.Window.GetProperty("onSilverlightButtonClick") != null) 
      HtmlPage.Window.Invoke("onSilverlightButtonClick", parm);


posted on 2012-08-03 10:03  Gu  阅读(...)  评论(...编辑  收藏