2016-07-14 19 views

回答

3

正如其他人所說,這是因爲所有VS必須繼續是DLL,它不包含源,只有方法簽名。

但是你能做些什麼呢?

有幾件事。

  1. 試着ReSharper的,它有一個內置的反編譯器,可以告訴你一些代碼(注意,它不會與原來的變量名被格式化,但它總比沒有通常最好)。
  2. 如果您沒有ReSharper,那麼您可以使用免費的JetBrains dotPeek產品,儘管它沒有集成到Visual Studio中。
  3. 如果您從Nuget.org引用,那麼您應該可以在VS中打開一個選項,以pdb文件的形式下載源代碼(如果由程序包作者提供)。這是最好的體驗。
  4. 如果可能,請使用一些匹配的pdb文件。要麼讓他們直接,從源代碼等。
1

這是因爲您沒有將引用添加爲項目,但是您正在使用「添加引用」對話框中的「瀏覽」選項卡指向dllexe。如果您使用「項目」選項卡添加參考,則應在選擇「轉至定義」時直接轉至源代碼。

注:如果你沒有爲dll項目,然後你會得到metadata只能從dll

+0

是的,我打開顯示「從元數據」的代碼。那麼,我有沒有辦法看到源代碼? – v11

+0

你有參考'dll'的項目嗎? –

+0

感謝您的回答,我已經知道了。 – v11

1

如果你的定義,你會發現使用F12是在同一個項目,那麼它會顯示方法/變量/類的全部定義。

如果您的定義不在項目i中,那麼您引用了不同的項目,那麼它將只顯示聲明。

+0

我可以在外部項目中看到詳細信息嗎? – v11

+0

如果有引用項目代碼,打開項目並檢查你正在搜索的方法 –

+0

如果你只有DLL,試着下載一個名爲relector exe的工具,然後用這個工具打開dll,你可以看到dll的代碼那裏。 –

0

如果您正在嘗試從已編譯的DLL中查看您引用的方法的源代碼,則不能,因爲它是已編譯的代碼,因此它不是源代碼。

+0

在c#中是否有像xx.source.jar這樣的東西來查看源代碼? – v11

+0

不作爲DLL的一部分,不。源代碼將分開分發(假設組件是開源的,如果它是一個專有組件,顯然它幾乎肯定不會被賦予源代碼)。 – ADyson

相關問題