0

需要做什么才能步入 (F11) 反射代码。

我正在使用反射创建对象:

myObject.GetType().GetConstructor().Invoke(myParams)

我想进入构造函数的代码。如果我按 F11 它只是跳过构造函数的代码;(

但同时,如果我在 ctor 处设置断点并按 F5 - 它会达到此断点。

那么,我可以做些什么来启用反射代码。

4

4 回答 4

4

只是我的代码可能是导致问题的原因。

在 Visual Studio 中:

  1. 工具 --> 选项
  2. 调试(左侧)
  3. 取消勾选右侧的“仅启用我的代码(仅限托管)”。

我不能保证这是导致问题的原因 - 但这是我最好的选择。

于 2009-04-29T06:22:53.157 回答
1

我认为问题在于技术上没有代码可以进入。假设您正在处理已编译的模块或库,那么自从它编译后,您根本无法进入它。即使您正在进入您编写的内容,该对象也是在内存中生成的,因此编译可能不再知道这些指令来自何处。

于 2009-04-29T05:47:50.137 回答
0

Soviut 所说的:它是编译后的代码,你不能介入。但是我在使用 CodeDOM 生成类并将它们写入磁盘在 Debug 中编译 CodeDOM 时看到了这种情况。然后,您可以单步执行生成的类。但显然这是一个非常具体的案例。

您可能想使用 Reflector 来查看构造函数中发生了什么,但这是对情况的静态视图。

于 2009-04-29T06:01:54.940 回答
0

我之前遇到过同样的问题,但经过一些研究,我意识到 JustMyCode 是问题所在。它通常会禁用大多数内置的 vs 调试工具。删除后一切正常。如果您喜欢 JustMyCode,请将其用作您的调试工具。

于 2011-01-05T23:41:58.570 回答