是否可以调试在运行时编译的代码?

epi*_*tka 10 .net c# compiler-construction codedom visual-studio-2010

我需要使用编译一些代码CodeDomProvider.CompileAssemblyFromSource.如何进行调试呢?基本上,我想编译它,创建一个类型的实例,然后进入该类型的代码.

epi*_*tka 9

在我发布问题之后,我意识到我的问题是我是从字符串生成程序集,而不是从文件生成.我在DEBUG中返回并更改了代码以使用不同的选项运行,并且我能够从单元测试代码中直接进入.还必须将GenerateInMemory设置为false并将IncludeDebugInformation设置为true.

#if DEBUG
            @params.IncludeDebugInformation = compilationContext.IncludeDebugInformation;
            @params.GenerateInMemory = compilationContext.GenerateInMemory;
            var fileName = Path.GetFullPath(Path.Combine(AppDomain.CurrentDomain.BaseDirectory,@"..\..\" + compilationContext.AssemblyOutputName + ".cs"));
            File.WriteAllText(fileName,compilationContext.StringToCompile);
            return _codeDomProvider.CompileAssemblyFromFile(@params,fileName);
#else
            return _codeDomProvider.CompileAssemblyFromSource(@params, compilationContext.StringToCompile);
#endif
Run Code Online (Sandbox Code Playgroud)