是否可以在
AssemblyBuilder
中使用TypeBuilder
/MethodBuilder
/System.Reflection.Emit
为动态生成的程序集添加局部变量名和源代码信息等调试信息?我特别感兴趣的是,这在 .NET 的非 .NET Framework 版本(例如,.NET Core 5、6、7)中是否可行。
有ISymbolDocumentWriter (ModuleBuilder.DefineDocument), ISymbolWriter (ModuleBuilder.GetSymWriter), LocalBuilder.SetLocalSymInfo 但它们只在 Net Framework 上实现(参见 issue1, issue2)。无论如何,我建议在 Reflection.Emit 周围使用一些包装器,而不是直接使用它,NuGet/GitHub 上有很多。
或者: