0
安慰
我用下面的編譯C#在運行時:如何抓住什麼是寫有CSharpCodeProvider
CompilerParameters parameters = new CompilerParameters
{
GenerateInMemory = true,
GenerateExecutable = true,
IncludeDebugInformation = true
};
// True - memory generation, false - external file generation
// True - exe file generation, false - dll file generation
var res = pro.CompileAssemblyFromSource(parameters,
code);
Assembly assembly = res.CompiledAssembly;
Type program = assembly.GetType("First.Program");
MethodInfo main = program.GetMethod("Main");
var invoke = main?.Invoke(null, null);
res.Output
是一個空列表,如果代碼中有Console.WriteLine()
,它被寫入主應用程序的控制檯但是,我想抓住寫的東西。
沒有錯誤,它寫入父應用程序的調試,但我想取而代之。 –
@TalhaTalipAçıkgöz不知道會導致什麼。您可以使用一個調試偵聽器:https://msdn.microsoft.com/en-us/library/system.diagnostics.debug.listeners(v=vs.110).aspx – AaronLS
我會看看,但我認爲那裏應該是更好的方法。 –