Reflector не показывает реализацию класса

Я пытаюсь декомпилировать библиотеку, но когда я нажимаю на имя класса или имя метода, код реализации пуст.

Например:

public bool MethodOne(string str)
{
    // nothing
}

Что это может быть?

Ответ 1

Возможно, вы пытаетесь отобразить сборки ссылок, используемые Visual Studio, для поддержки поддержки нескольких таргетинга. Эти сборки являются только метаданными и не имеют реальной реализации.

Если это так, вы можете использовать расширение VSCommands 2010, чтобы получить путь к реальной сборке с реализацией.

детали сборки http://vscommands.com/wp-content/uploads/2011/04/image12.png

Ответ 2

Возможно, вы открыли ссылочную сборку или PIA, в которой нет кода.

Тело метода может быть пустым.

(Другие возможности?)

Ответ 3

Я тоже видел это со сборками VSSDK.

Это может быть общедоступная библиотека интерфейса, но фактическая реализация "где-то" скрыта. (Может быть, в GAC?)

Основной ход мысли:

  • Скомпилировать код с некоторой сборки "заглушки"
  • При загрузке в приложение узел заглушки не разрешен, но фактический

Я предлагаю вам установить точку останова в отладчике и посмотреть, что представляет собой фактическая загруженная сборка и откуда она загружена.

Ответ 4

Какая версия фреймворка .Net используется? Кажется, что возникает проблема с сборками .net 4.0, где это происходит... или это то, что говорят некоторые люди на форумах: Reflector Forum

Есть ли какой-нибудь IL?