天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

在.NET中嵌入IronPython 交互

  隨著IronPyhon 2.0 的發布,.NET Dynamic Language Runtime 也更加成熟了,在2.0中我們可以用動態腳本以粘合劑的方式編寫架構體系中的各種邏輯單元,既便于修改,又能靈活適合多變的業務場景。當然,我的目標是在 Platform Framework 中能嵌入腳本引擎,而不是用 ipy.exe 去執行一個“獨立”的任務。要讓.NET 項目能真正跟腳本進行交互,還得需要提供腳本引擎的實現。這得提到DLR一些基本概念了。

  下圖摘自 DLR 幫助文件,通過它我們基本可以了解基于 DLR 的組成方式。

 

      下圖描述了 DLR 的基本執行流程。

 

  ScriptRuntime:創建 DLR 運行環境,這是整個執行過程的起始點,它表示一個全局的執行狀態(比如程序集引用等等)。每個應用程序域(AppDomain)中可以啟動多個 ScriptRuntime。

  ScriptScope:構建一個執行上下文,其中保存了環境及全局變量。宿主(Host)可以通過創建不同的 ScriptScope 來提供多個數據隔離的執行上下文。

  ScriptEngine: DLR 動態語言(比如 IronPython)執行類,可于解析和執行動態語言代碼。

  ScriptSource:操控動態語言代碼的類型,我們可以編譯(Compile)、讀取(Read Code Lines)或運行(Execute)代碼。

  CompiledCode:調用 ScriptSource.Compile()將源代碼編譯成 CompiledCode,這樣多次執行就無需重復編譯,從而提高執行性能。

  ObjectOperations:提供了相關方法,允許我們在宿主(Host)中操作 DLR 對象成員(Member)。

  現在我們來構建腳本引擎

  當然我們必須加入IronPyhton提供的相關引用并導入命名空間

  using IronPython.Hosting;

  using IronPython.Compiler;

  using IronPython.Runtime;

  using Microsoft.Scripting;

  using System.Runtime.Remoting;

  1、Hello World

  以下為引用的內容:

      var py = @"def test():
  return ‘hello world~!’;
  print test();
"var engine = Python.CreateEngine();
  var code
= engine.CreateScriptSourceFromString(py, SourceCodeKind.Statements);
  code.Execute();

NET技術在.NET中嵌入IronPython 交互,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 国产午夜伦鲁鲁 | 亚洲AV无码乱码国产麻豆穿越 | 欧美整片华人play | 国产精品色吧国产精品 | 黑人巨茎vide抽搐 | 欧美牲交A欧美牲交 | 国产亚洲精品久久777777 | 久久久无码精品无码国产人妻丝瓜 | 真实处破女全过程完免费观看 | 一二三四高清中文版视频 | 儿子好妈妈的HD3中字抢劫 | 亚洲AV成人无码999WWW | 渔夫床满艳史bd高清在线直播 | 亚洲 日韩 在线 国产 视频 | 日本A级作爱片金瓶双艳 | 92电影网午夜福利 | 97在线超碰免费视频 | 久久精品国产亚洲AV未满十八 | 全黄h全肉短篇禁乱np | 这里只有精品网 | 少妇厨房愉情理9伦片视频 少妇被躁爽到高潮无码久久 | 精品亚洲一区二区在线播放 | 乱码国产丰满人妻WWW | 99久久精品国产国产毛片 | 国产精品夜夜春夜夜爽久久小 | 欧美在线看欧美视频免费 | 5g在视影讯天天5g免费观看 | 多男同时插一个女人8p | 熟女啪啪白浆嗷嗷叫 | 97色伦在色在线播放 | 免费99精品国产人妻自在线 | 爽死你个放荡粗暴小淫货漫画 | 久久久午夜精品福利内容 | 久久久欧美国产精品人妻噜噜 | 草699一码二码三码四码 | 九九热在线观看 | 月夜直播免费观看全集 | 麻豆无人区乱码 | 日本高清无卡码一区二区久久 | 亚洲不卡高清免v无码屋 | 99在线观看|