2016-09-07 47 views
-1

我有一個跨多個程序集的單個命名空間。 Resharper警告說名稱空間不對應於文件位置。多個程序集中的相同命名空間是一種很好的做法?

這是不好的做法?使用與文件位置相對應的名稱空間更好嗎?

在我的特定情況下,我有兩個組件:一個可移植類庫的一些平臺,然後特定的程序集爲每個平臺(UWP,桌面,...)共享

的命名空間是MyCompany.I18N和它致力於本地化服務。

大部分代碼都在PCL中,但我需要編寫一些平臺特定的代碼。

在UWP的情況下,我需要使用XAML函數,所以我創建了一個UWP程序集。我認爲MyCompany.I18N命名空間是可以的,因爲它是原來的I18N命名空間的擴展,但是Resharper認爲它不是一個好的樣式。

我需要移動到MyCompany.XAML.I18N命名空間嗎?這對我來說似乎更困惑。在這些情況下通常的做法是什麼?

回答

3

這是一個非常常見的約定,即文件的佈局與代碼中的命名空間相匹配。這使得東西在邏輯上由文件夾和命名空間分開。當它不匹配時,ReSharper通過警告你來使用它 - 這通常表明命名空間不正確,或者文件位於錯誤的地方。

如果它不適合你,不遵守約定是完全正確的。您可以通過更改Alt + 輸入菜單並將其設置爲「不顯示」(您可以將其保存到團隊共享設置並將其檢入到源代碼控制中並將其應用於其中)來禁用警告以解決方案爲基礎)。

此外,您可以禁用它爲特定的文件夾。在Visual Studio中,在解決方案資源管理器中選擇一個文件夾,然後右鍵單擊並顯示屬性。然後將「Namespace Provider」設置更改爲false。 ReSharper不會將該文件夾視爲預期命名空間的一部分。在help page更多細節。

相關問題