使用Roslyn RC发送到DynamicAssembly

Stm*_*ted 5 c# roslyn

从编译Roslyn SyntaxTree的许多示例中,我看到了以下代码:

[... create tree and compilation ...]
var assembly = AppDomain.CurrentDomain.DefineDynamicAssembly(new AssemblyName("foo"), AssemblyBuilderAccess.RunAndCollect);
var module = assembly.DefineDynamicModule("foo");

var result = compilation.Emit(module);
Run Code Online (Sandbox Code Playgroud)

但是当我尝试在当前使用Visual Studio 2015 RC发布的Roslyn中执行此操作时,我看到没有Emit()哪个需要一个模块.我需要写入流并将其加载到常规AppDomain锁定中Assembly.

然后我从Tomas Matousek看到这个答案:https://stackoverflow.com/a/22977158

他说这已被删除,因为它"有问题".

我很难在互联网上找到关于此的任何其他信息.有谁知道:

  • 在Roslyn中还有另一种方法可以编译成可以进行垃圾回收的程序集吗?
  • 或者这将在VS/Roslyn的最终版本中得到支持?
  • 如果这里没有人知道(无法找到正式的,积极的罗斯林论坛),我应该在哪里指导这个问题?

Stm*_*ted 0

正如 svick 和 JoshVarty 在评论中所说,目前这是不可能的。我还为此创建了一个问题(https://github.com/dotnet/roslyn/issues/2621),该问题最终可能会或可能不会从 Microsoft 团队获得更多信息。