2010-01-26 48 views
2

我在寫代碼分析工具,它使用反射來驗證特定的代碼庫。當我遇到感興趣的類型或成員時,我想加載符號並提取成員或類型定義的源文件和行號。這可能嗎?如果是這樣,怎麼樣?有沒有辦法以編程方式獲取任意MemberInfo的源文件和行號?

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; } 
} 

回答

3

blog article中列出了可用的符號API。我認爲MDbg包裝是您託管代碼的最佳選擇。我只試過DIA sdk,並沒有激動。

0

不,你不能這樣做使用反射。爲此,您需要使用Symbol API的關聯program database file

+0

賈森你的鏈接已經死了。也許你可以總結他們的內容? – Amicable 2014-06-18 08:44:42

1

This codeproject文章有一些關於從PDB文件中檢索信息的信息。

相關問題