Visual Studio 2008 - как перейти к (F11) отраженному коду

Что нужно сделать, чтобы иметь возможность войти в (F11) отраженный код.

Я создаю объект с помощью отражения:

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

и я хочу пойти в код конструктора. Если я нажимаю F11, он просто пропускает код конструктора;(

но в то же время, если я поставлю точку останова на ctor и нажму F5 - она ​​достигнет этой точки останова.

Итак, что я могу сделать, чтобы войти в отраженный код?

4 ответа

Решение

Просто мой код может быть то, что вызывает проблемы.

В Visual Studio:

  1. Сервис -> Параметры
  2. Отладка (слева)
  3. Снимите флажок "Включить только мой код (только управляемый)" справа.

Я не могу гарантировать, что это является причиной проблемы, но это мой лучший выбор.

Я полагаю, что проблема в том, что технически нет кода, на который можно было бы перейти. Предполагая, что вы имеете дело с скомпилированным модулем или библиотекой, вы просто не можете войти в него, так как он скомпилирован. Даже если вы вступаете во что-то, что написали, объект генерируется в памяти, поэтому компиляция, вероятно, не имеет представления о том, откуда поступают эти инструкции.

То, что сказал Совиут: это скомпилированный код, вы не можете войти в это. Но я видел, как это работает при генерации классов с использованием CodeDOM и записи их на диск и компиляции CodeDOM в Debug. Затем вы можете вступить в сгенерированные классы. Но, очевидно, это очень конкретный случай.

Возможно, вы захотите использовать Reflector, чтобы увидеть, что происходит в конструкторе, но это статическое представление о ситуации.

Раньше у меня была такая же проблема, но после некоторого исследования я понял, что проблема была в JustMyCode. Обычно это отключает большинство встроенных и отладочных инструментов. Все прошло нормально после удаления. Если вам нравится JustMyCode, используйте его в качестве инструмента отладки.

Другие вопросы по тегам