Предоставляет ли MethodBase имя файла и номер строки? - PullRequest
1 голос
/ 30 июля 2009

Я пытаюсь написать CompileTimeValidate(MethodBase method) для postsharp. проблема заключается в том, что когда происходит нарушение, в списке ошибок отображается только описание. Столбцы «Файл» и «Строка» пусты.

Единственная информация, с которой я работаю, - это MethodBase экземпляр метода, к которому был применен атрибут.

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

    public override bool CompileTimeValidate(MethodBase method)
    {
        MessageSource.MessageSink.Write(new Message(SeverityType.Error, "CU0001",
           "MyError", "MyAspectLibrary"));

        return false;
    }

1 Ответ

3 голосов
/ 30 июля 2009

нет там нет. MethodBase представляет собой представление частей базовых метаданных сборки .Net. Исходная информация, включая информацию о файлах и строках, не хранится в DLL и, следовательно, недоступна через API Reflection. Информация о файлах и строках фактически хранится в PDB, и вам нужно было бы пройти через эти API, соответствующие токенам, чтобы найти информацию о файле / строках.

...