C#代碼動態編譯、動態執行、動態調試

來源:互聯網
上載者:User

前幾天看到一篇關於.net動態編譯的文章 .NET中的動態編譯 ,很受啟發。在 此基礎上我做了一些封裝,為使調用更加簡單,並增加了對動態代碼調試的支援 ,相同代碼只編譯一次的支援,代碼改動自動重新編譯,代碼引用檔案的自動加 載和手工載入等功能。

如上圖,我封裝的類CSharpProvider很簡單,下面說明一下一些公用成員 的用法。

公用屬性

AssemblyFileName:這個屬性指定動態編譯後 產生的配件名稱。

CompilerParameters:這個屬性指定編譯的參數

References:這個屬性指定被編譯代碼中的引用。調用者只要調用 References.Add("xxx.dll"),就可以加入自己的引用,對於System命 名空間的所有引用,不需要手工加入,該類會自動載入。對於使用者自己的組件, 如果不手工指定引用檔案,該類會自動根據名字空間名進行猜測。

SourceCodeFileEncoding:如果以檔案形式編譯,指定檔案的編碼類別型。

公用方法

public bool Compile(string code)

輸入代碼 字串,並編譯

public bool CompileFromFile(string sourceCodeFileName)

編譯輸入的代碼檔案

public object CreateInstance(string code, string typeFullName)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.