Можно ли сохранить динамическую сборку на диск?

Я недавно купил книгу АйендеСоздание DSL в Бу (купите, прочитайте, это круто), но я сталкиваюсь с проблемой реализации и хочу посмотреть, как выглядит сгенерированный код. Я бы обычно использовал рефлектор для просмотра кода, но в этом случае сборки динамические и только в памяти. Есть ли способ сохранить динамические сборки на диск, чтобы я мог их отразить?

РЕДАКТИРОВАТЬ / Мой ответ:

Вау, потребовалось некоторое время, чтобы вернуться к этому. К сожалению, я упустил важный момент из исходного вопроса.

Важный бит: я используюБиблиотека RhinoDSL Айенде как он рекомендует в книге. У меня есть доступ к компилятору boo в моем подклассе DslEngine, который выглядит так:

public class JobEngine : DslEngine
{
    protected override void CustomizeCompiler(Boo.Lang.Compiler.BooCompiler compiler, Boo.Lang.Compiler.CompilerPipeline pipeline, string[] urls)
    {
        pipeline.Insert(1, new ImplicitBaseClassCompilerStep(typeof (JobBase), "Prepare", "JobLanguage", "log4net", "Quartz"));
    }
}

Чтобы изменить наименьшее и получить то, что я хотел, мне нужно было добавить одну строку ...

public class JobEngine : DslEngine
{
    protected override void CustomizeCompiler(Boo.Lang.Compiler.BooCompiler compiler, Boo.Lang.Compiler.CompilerPipeline pipeline, string[] urls)
    {
        compiler.Parameters.GenerateInMemory = false; // <--- This one.
        pipeline.Insert(1, new ImplicitBaseClassCompilerStep(typeof (JobBase), "Prepare", "JobLanguage", "log4net", "Quartz"));
    }
}

Это заставило компилятор вывести сборку в мой каталог ~ \ LocalSettings \ Temp, и тогда я смог отразить это. Важно отметить, что внесение этого изменения привело к сбою остальной части программы (RhinoDSL больше не мог находить сборки в памяти, потому что я выводил их на диск), так что это полезно только как инструмент отладки.

Ответы на вопрос(4)

Ваш ответ на вопрос