1
我正在爲在.NET框架上運行的語言編寫編譯器。我試圖爲導入語句生成代碼。基本上如何使用Reflection.Emit添加引用
import System.Drawing
應該表現得像
using System.Drawing;
在C#
。 import語句也將支持諸如:
import Foo.Bar in "foo.dll"
這將導入foo.dll的Foo.Bar類。我的問題是如何將這些鏈接到使用Reflection.Emit生成的程序中?
謝謝。
好吧,我需要使用foo.dll上的反射來抓取方法和類,並簡單地在發射的il中使用它們?還有一點很有趣,C#會這麼做,所以未使用的引用不會導入任何內容? – mirhagk
@mirhagk是的,正是 –
@mirhagk作爲一個額外的,你可能會發現值得看看IKVM.Reflection.dll;它具有相同的API,但有一些稍微好一點的能力,例如以完全隔離的方式加載程序集的能力,甚至允許爲不同的框架生成dll - 例如,爲WinRT,Silverlight,Windows Phone 7生成DLL,等等 - 全部來自.NET 2(或更高版本)的exe。 –