5
從編譯羅斯林SyntaxTree的例子很多,我已經看到了這樣的代碼:射向DynamicAssembly與羅斯林RC
[... create tree and compilation ...]
var assembly = AppDomain.CurrentDomain.DefineDynamicAssembly(new AssemblyName("foo"), AssemblyBuilderAccess.RunAndCollect);
var module = assembly.DefineDynamicModule("foo");
var result = compilation.Emit(module);
但是,當我試圖做到這一點在目前的羅斯林與Visual Studio 2015年RC發佈我看不到Emit()
需要一個模塊。我需要寫入流並將其加載到常規AppDomain
已鎖定的Assembly
。
然後我看到托馬斯·馬斯克這樣的回答:https://stackoverflow.com/a/22977158
在那裏,他說,這已被刪除,因爲它是「有問題的」。
我在Internet上很難找到關於此的任何其他信息。有誰知道是否:
- 還有另一種方式在羅斯林編譯成一個可以垃圾收集的程序集?
- 或者VS/Roslyn的最終版本會支持這個功能嗎?
- 如果沒有人知道(無法找到一個官方的,活躍的Roslyn論壇),我應該直接指出這個問題?
Roslyn官方網站[在github上](https://github.com/dotnet/roslyn)。如果你想開始討論某些事情,請創建一個問題。 – svick
直到CLR支持可收集組件時,在Roslyn內部才能實現。你可以在這裏爲他們投票:http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/6120992-support-for-collectible-assemblies 在GitHub上:https://github.com/dotnet/coreclr /問題/ 552 – JoshVarty