Есть ли способ программно получить исходный файл и номер строки произвольного MemberInfo?

2

Я пишу инструмент анализа кода, который использует отражение для проверки конкретной базы кода. Когда я сталкиваюсь с типом или членом, представляющим интерес, я хотел бы загрузить символы и извлечь исходный файл и номер строки, где определен член или тип. Это возможно? Если да, то как?

class SourceInfo
{
    public static SourceInfo GetFrom(MemberInfo member)
    {
        // What do I do here??
        throw new NotImplementedException();
    }

    public static SourceInfo GetFrom(Type member)
    {
        // What do I do here??
        throw new NotImplementedException();
    }

    public string SourceFilePath { get; private set; }
    public int LineNumber { get; private set; }
}
Теги:
reflection
symbols
clr

3 ответа

3
Лучший ответ

Доступные символьные API перечислены в этой статье в блоге. Я думаю, что обертки MDbg - ваш лучший выбор для управляемого кода. Я только пробовал SIA SDA и не был в восторге.

1

Эта статья в кодедепе содержит некоторую информацию о получении информации из файла PDB.

0

Нет, вы не можете сделать это, используя отражение. Для этого вам понадобится файл файл базы данных программы с помощью Символ API.

  • 0
    Джейсон, твои ссылки мертвы. Возможно, вы могли бы обобщить их содержание?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню