2015-05-09 43 views
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論壇),我應該直接指出這個問題?
+2

Roslyn官方網站[在github上](https://github.com/dotnet/roslyn)。如果你想開始討論某些事情,請創建一個問題。 – svick

+1

直到CLR支持可收集組件時,在Roslyn內部才能實現。你可以在這裏爲他們投票:http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/6120992-support-for-collectible-assemblies 在GitHub上:https://github.com/dotnet/coreclr /問題/ 552 – JoshVarty

回答