我有一個動態創建的程序集,一個模塊,一個類和一個動態生成的方法。如何調試動態生成的方法?
AssemblyBuilder assembly = AppDomain.CurrentDomain.DefineDynamicAssembly(...);
ModuleBuilder module = assembly.DefineDynamicModule(...);
TypeBuilder tb = module.DefineType(...);
MethodBuilder mb = tb.DefineMethod(...);
ILGenerator gen = mb.GetILGenerator();
如何調試使用ILGenerator
生成的方法代碼?我使用Visual Studio 2012調試器,但它只是通過方法調用的步驟。
我發現一個異常InvalidOperationException:在執行'ISymbolDocumentWriter doc = module.DefineDocument(@「SourceCode.txt」,Guid.Empty,Guid.Empty,Guid.Empty)時不是調試ModuleBuilder;''。 –
當你定義模塊時,你需要告訴它發出符號信息。使用[this](http://msdn.microsoft.com/en-us/library/76xbchca.aspx)構造函數,並將第二個參數設置爲'true'。實際上有一個很好的工作示例[這裏](http://blogs.msdn.com/b/jmstall/archive/2005/02/03/366429.aspx)。 –