2017-01-27 31 views
1

我有幾百個類,它們不屬於任何名稱空間。我想選擇它們並將它們全部放入一個新的命名空間中。有沒有在Visual Studio中或在Resharper之類的工具幫助下做到這一點的半自動化方式?如何在Visual Studio中將大量文件選擇到命名空間中?

它必須以讓我選擇要放入命名空間的文件的方式工作,因爲並非所有文件都應該更改。最好的辦法就是在項目中選擇我需要的項目,然後執行一些宏操作,將名稱空間聲明添加到選定的文件中。

目前我已經開始單獨打開這些文件,選擇類定義並按CTRL + K + S環繞命名空間,但這可能需要幾天時間。

+2

聽起來像一個非常簡單的C#程序來編寫。這只是文本文件操作。不需要更新項目文件或任何東西。我知道我不會花幾天時間手工完成它,我可以自動化它! – itsme86

+1

這種工作是非常典型的perl,甚至是sed,腳本FWIW。 C#可以工作,但是這些語言是爲文本處理而構建的。 – BradleyDotNET

回答

2

只需將文件移動到代表所需命名空間的文件夾,然後右鍵單擊解決方案資源管理器中的文件夾並選擇重構→調整命名空間。 ReSharper將提示您輸入文件進行更新,然後更新這些文件中的命名空間。有關更多詳細信息,請參閱Adjust Namesapces上的文檔。

+0

謝謝,這正是我想要的。我正準備按照其他評論的建議寫一個腳本,但由於我已經有了ReSharper ......很好。 – Xarbrough

+0

我想補充一點,ReSharper目前只支持「修復」命名空間,方法是檢查文件的存儲位置,然後將命名空間調整爲文件夾結構。這並不總是有幫助的。例如,在Unity3D中工作時,幾乎不會有文件夾結構和名稱空間同步。儘管如此,使用ReSharper很容易實際生成名稱空間聲明,然後使用一些正則表達式搜索和替換來調整輸出。 – Xarbrough

+0

確實。 ReSharper將基於文件夾結構的命名空間名稱。儘管通過在選擇文件夾時在屬性窗口中將「Namespace provider」屬性設置爲false,您可以從生成的名稱中刪除文件夾。有關更多詳細信息,請參閱[文檔](https://www.jetbrains.com/help/resharper/2016.3/CheckNamespace.html)。 – citizenmatt

相關問題