2010-01-30 80 views
4

通過點擊「轉到定義」(或通過懸停)來確定類的名稱空間是很容易的,但我經常需要知道什麼是dll中定義的東西,因此我可以將相應的引用添加到需要的其他項目一樣的東西)。在Visual Studio 2008中,是否有一種簡單的方法來確定哪個類是在類中定義的?

例如,在Silverlight中,System.Windows.Controls命名空間中有很多類,它們分佈在至少5個不同的dll中。

我最終通過反覆試驗找出了它,但必須有一個更簡單的方法。

在此先感謝。

回答

0

如果你的命名空間是有名的(以便它們與dll名稱相關),那麼你應該沒有問題。也許幾分鐘重構你的命名空間值得考慮?

如果您'定義',那麼您可以使用save-as來輕鬆查看它保存在項目中的位置(然後取消保存)。 (這當然依賴於你的文件夾結構與你的命名空間和程序集名稱有關,但通常獲取文件名就足以確定某個項目屬於哪個項目)

編輯:(當然,這隻適用於你的類對源代碼)

+0

這很簡單。我正在尋找在我沒有源代碼的dll中的類。例如,在Silverlight中,System.Windows.Controls命名空間中有很多類,它們分佈在至少5個不同的dll中。 – 2010-01-30 16:42:13

1

如果類的DLL是解決方案中的一個項目,那麼你就可以打開Track Active Item in Solution Explorer選項(這是在工具>選項>項目和解決方案),所以當你去定義「上一個類,在解決方案資源管理器中的選擇將自動移動到它的文件,然後您可以看到它在哪個項目中。

+0

的確如此,但我只能搜索它。我感興趣的情況是它不在當前項目中的位置?例如,在Silverlight中,System.Windows.Controls命名空間中有很多類,它們分佈在至少5個不同的dll中。 – 2010-01-30 16:41:22

0

不幸的是,我認爲有沒有簡單的方法來做t他的。我感到你的痛苦,因爲我過去也遇到過完全相同的問題。

我常用的方法來解決這個問題是反射器。對於我擁有的每個解決方案,我通常都有一個反射器配置,其中包含該解決方案中的或由該解決方案引用的所有DLL。當我需要查找擁有的DLL時,我打開反射器,快速搜索名稱並發現DLL。

這不是一個理想的解決方案,但它的工作原理相對較快。

相關問題