Я пишу инструмент анализа кода, который использует отражение для проверки конкретной базы кода. Когда я сталкиваюсь с типом или членом, представляющим интерес, я хотел бы загрузить символы и извлечь исходный файл и номер строки, где определен член или тип. Это возможно? Если да, то как?
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; }
}
Доступные символьные API перечислены в этой статье в блоге. Я думаю, что обертки MDbg - ваш лучший выбор для управляемого кода. Я только пробовал SIA SDA и не был в восторге.
Эта статья в кодедепе содержит некоторую информацию о получении информации из файла PDB.
Нет, вы не можете сделать это, используя отражение. Для этого вам понадобится файл файл базы данных программы с помощью Символ API.