2009-11-26 112 views
5

我正在設計一個名稱空間來容納一組類,這些類將處理用戶有關幾個不同應用程序的相關任務。 (註冊,認證等)類應該與命名空間名稱相同嗎?

的問題是命名空間將被稱爲Fusion.User但隨後要求該命名空間是有道理調用User類。

如果你有一個與命名空間同名的類?或者我在這裏採取了錯誤的做法?

+0

的可能重複[如何避免一類具有相同的名稱和它的命名空間,如Technology.Technology?](http://stackoverflow.com/questions/1158092/如何避免具有相同名稱的類和命名空間,如技術) – nawfal 2013-02-25 09:27:49

回答

1

命名方式與命名空間(包)相同的類可能會導致認爲類是包的核心。但是,如果我得到它正確的用戶只是你的情況下的數據對象。

至於我看你有2種選擇:

  1. 名稱的命名空間不同的例如Fusion.Security
  2. 爲類名指定使用後綴,例如UserDTO,UserAction等
+0

我喜歡'Fusion.Security'的建議 - 也許我的想法太窄了 – 2009-11-26 14:02:19

0

我可能會調用名稱空間'usertasks'來避免任何混淆。您將不得不定期使用命名空間限定內部類,以避免混淆編譯器。

1

的命名空間是Fusion.User
類的全名是Fusion.User.User

這是一個很好的做法,使他們不同,因爲

  1. 它避免混淆開發商
  2. 在這裏我們使用兩個用戶的情況下,它也看起來很醜。

    using Fusion;
    命名空間XYZ {
    公共類測試
    {
    User.User userObject {獲得;設置;}}
    }

    所以,更好的選擇是使用不同的名稱

1

有些情況下使用的情況下,同名會導致問題。立即想到的一點是在使用WCF服務時。當我最近在命名空間「companyName.someBehaviour」的一個名爲「someBehaviour」的類中使用了「MyService」時,編譯器對我說,MyService不存在於someBehaviour命名空間中。將類名更改爲不同的(並且非常有用)解決了這個問題,並允許我編譯程序集。

相關問題