成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Silverlight DLR輕松實現動態語言編寫

開發 開發工具
Silverlight DLR的應用可以讓我們輕松的上手動態語言的編寫,實現Silverlight程序的開發。在這里將會為大家詳細介紹其中的應用技巧。

Silverlight開發工具是一個非常深奧的應用工具。其中包含有許多特性值得我們去深入的研究。要想很好的使用這款工具幫助我們完成各種功能的實現,就需要在實際編程中去慢慢積累經驗。Silverlight DLR是Silverlight中提供的一套非常強大的動態語言運行時。目前2.0 beta2中支持Python,Ruby和JSX。#t#

利用Silverlight DLR,你可以很方便的使用熟悉的動態語言編寫Silverlight程序。本文主要介紹如何在托管語言中調用動態語言。首先,我們需要初始化動態語言的環境配置,從中獲取所有可以使用的動態語言列表,然后得到相應動態語言的運行引擎。

  1. ScriptRuntimeSetup setup = new Script
    RuntimeSetup(true);
  2.  //true表示載入所有支持的動態語言的環境配置  
  3. ScriptRuntime runtime = ScriptRuntime.
    Create(setup);
  4.  //創建動態語言運行環境  
  5. foreach (LanguageProviderSetup langSetup
     in setup.LanguageProviders) 
  6. //遍歷所有動態語言的環境配置  
  7. {  
  8. try  
  9. {  
  10. ScriptEngine engine = null;  
  11. if (runtime.TryGetEngine(langSetup.
    Names[0], out engine)) 
  12. //嘗試獲取動態語言的運行引擎  
  13. {  
  14. //engine就是我們需要的運行引擎  
  15. }  
  16. }  
  17. catch (MissingTypeException) 
  18. //處理創建不支持的動態語言時可能拋出異常  
  19. {  
  20. }  

Silverlight DLR獲取了運行引擎后,我們就可以執行動態語言的代碼了

 

  1. public class MyErrorSink : ErrorSink
     //編譯錯誤處理  
  2. {  
  3. IList<string> m_ErrorMsg = new List
    <string>();  
  4. public IList<string> ErrorMsg  
  5. {  
  6. get { return m_ErrorMsg; }  
  7. }  
  8. public MyErrorSink()  
  9. {  
  10. }  
  11. public virtual void Add(SourceUnit 
    source, string message, SourceSpan 
    span, int errorCode, Severity severity)  
  12. {  
  13. if (severity == Severity.Error || 
    severity == Severity.FatalError)  
  14. {  
  15. m_ErrorMsg.Add(message);  
  16. }  
  17. }  
  18. }  
  19. LanguageContext langContext =
    HostingHelpers.GetLanguageContext(engine);  
  20. SourceUnit sourceUnit = langContext.
    CreateSourceUnit(new SourceStringContent
    Provider("1/4+3"), null, SourceCodeKind
    .Expression); //創建代碼序列:1/4+3  
  21. MyErrorSink errorSink = new MyErrorSink();  
  22. try  
  23. {  
  24. Scope scope = new Scope();  
  25. object ret = sourceUnit.Execute(scope, 
    errorSink); //執行動態語言代碼,
    ret就是執行結果的返回值了  
  26.  
  27. if (errorSink.ErrorMsg.Count > 0) 
    //檢查編譯錯誤  
  28. {  
  29. //  
  30. }  
  31. }  
  32. catch (Exception)  
  33. {  

Silverlight DLR的簡單應用就為大家介紹到這里。

責任編輯:曹凱 來源: IT168
相關推薦

2010-01-04 17:35:32

Silverlight

2009-12-30 15:20:39

Silverlight

2024-02-06 17:57:06

Go語言任務

2009-10-29 16:36:49

VB.NET .DLL

2012-04-26 14:02:58

ibmdw

2009-12-17 16:50:54

Ruby簡單編寫

2009-11-17 17:28:21

PHP靜態頁面

2009-11-03 14:13:23

VB.NET C#

2011-11-03 16:10:39

Silverlight

2010-03-05 14:15:20

SilverlightWCF

2009-12-30 18:28:56

Silverlight

2009-12-31 11:23:23

Silverlight

2009-12-30 15:42:08

Silverlight

2010-01-07 17:40:41

Linux動態庫

2010-03-05 14:55:39

Python創建Sil

2009-10-27 10:28:33

Silverlight

2010-06-30 15:10:18

2020-10-23 06:56:00

C語言動態字符串

2021-11-19 11:36:42

語言string字符串

2010-07-16 10:31:02

Batch Telne
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩在线免费视频 | 中文字幕成人网 | 亚洲综合色自拍一区 | 国产网站在线免费观看 | 在线 丝袜 欧美 日韩 制服 | 亚洲欧美另类在线观看 | 国产一区久久精品 | 亚洲一区二区三区免费在线观看 | 国产精品久久久久不卡 | 毛片免费看的 | 国产一区二区在线免费观看 | 欧美精品在欧美一区二区 | 天天操夜夜操 | 97色在线视频 | 亚洲日日| 欧美高清视频在线观看 | 天堂色综合 | 亚洲天堂中文字幕 | 中文久久| 日韩精品在线视频免费观看 | 国产成人网 | 欧美一级毛片久久99精品蜜桃 | 天堂综合 | 欧美视频成人 | 亚洲最大福利网 | 国产精品一区久久久久 | 91一区二区在线观看 | 日韩伦理一区二区三区 | 国产亚洲精品精品国产亚洲综合 | 在线观看免费毛片 | 亚洲毛片在线观看 | 欧美大片一区 | 超碰97人人人人人蜜桃 | 亚洲九九| 亚洲视屏| 成人午夜精品 | 欧美爱爱视频 | 在线观看免费av网 | 日韩色图在线观看 | 亚洲视频在线观看一区二区三区 | 精品国产欧美 |