簡體   English   中英

如何在.NET程序集中包含源代碼位置信息(文件/行/列)?

[英]How to include source code location information (file/line/column) in .NET assembly?

我需要能夠從.NET程序集中獲取源文件中的類/結構/接口定義位置(文件名,begin_line,begin_column,end_line,end_column)。

我想到的第一個解決方案是使用一些pdb查詢api,但是看來我只能以這種方式為方法定義獲取此類信息。 也許我錯了...

為了提供上下文,我試圖構建一個VS 2008外接程序,該外接程序通過VS自動化模型編譯所有解決方案項目,采用程序集並使用Reflections進行可視化建模。 我需要的是源代碼和模型元素之間的連接。 實際上,我什至可以以某種方式分析/修改源,以使他們記住位置信息。

任何想法,將不勝感激。

我假設現有的類圖對您沒有幫助,並且您不能使用已經知道如何對C#進行反向工程的工具? 之所以想到Sparx Enterprise Architect,是因為它不僅可以進行逆向工程,而且還可以運行用戶定義的結果模型轉換。 無論是在模型方面還是在構件方面,您都應該能夠從中生成任何想要的東西。

您還需要考慮一個類可能是局部的-同一類可能存在多個部分。

您的情況幾乎聽起來像是您需要以某種方式解析源代碼。 也許值得從DevExpress中檢查DXCore,這至少可以為Visual Studio中的Graphics和為您提供所有受支持語言的代碼DOM提供解析器的基礎。 如果您要構建自己的加載項,它也是免費的。

http://www.devexpress.com/Downloads/Visual_Studio_Add-in/DXCore/

它可能不是您要尋找的解決方案,但是如果您可以利用其提供的功能,則至少值得一看。 有許多基於此基礎的功能強大的插件。 例如: http : //jayflowers.com/WordPress/?p=137

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM