Methodbase.Invoke on Loaded程序集方法没有命中断点

时间:2014-11-07 07:44:22

标签: c# reflection

我的设置是这样的:

我正在为visual studio编写一个测试适配器,它调用一个控制台应用程序,它加载一个测试程序集并执行测试方法。

  • 跑步者工作正常,但现在我需要能够进行调试测试。

  • 我的跑步者和测试组装都在同一个位置有.pdb

  • 在调试模式下启动测试时,我能够看到符号已加载。

所以,这里有一些我最喜欢的代码:

//load the test assembly
var assembly = Assembly.LoadFrom("path\to\testassembly")

//not actual code, but it is representative 
var method = assembly.GetTypes().SelectMany(type => type.GetMethods()).Where(info => info.Name=="foo");

//Create type instance
var instance = Activator.CreateInstance(method.DeclaringType);
method.Invoke(instance, args)

有了这个,当我在方法foo中放置断点时,Visual studio指示已加载符号,并且断点处于活动状态。但它从来没有打过它。

为了验证方法是否被调用,我放了一些Console.Writeline,它确实触及了方法。

有关如何使其达到断点的任何提示?

1 个答案:

答案 0 :(得分:1)

在这一行放置断点

method.Invoke(instance, args)
点击

,按F11