2012-06-07 186 views
4

首先 - 我承認我的錯誤!名稱空間和表共享相同的名稱(哎呀!)

但我需要知道我是否應該嘗試修復它,或者只是承擔後果。

爲了便於參考,我創建了一個新的解決方案(C#,VS2010) - 我們稱之爲'F.PIA'。這個解決方案所做的一件事就是使用一個SQL Server表格 - 你猜對了 - 也被稱爲'PIA'。因此,我的項目的一切 - 包括主命名空間 - 都是F.PIA。

我使用F.A.PIA來訪問PIA表;這個程序集包含一個表格和一個公共部分類PIA。

在我的解決方案中,我可以區分兩者,但是我發現F.A.PIA的引用很笨拙(實際名稱比這個示例顯着更長)。

所以我試圖重構,沒有成功。我很確定重命名會更改DataSetDesigner中的某些內容,或者不會更改那些內容(或相關項目) - 但我不夠精確,無法確定哪些內容出了問題 - 也不知道如何解決它。 (是的,我在Refactor-YAY之前有過備份工作。)

我應該讓它保持原樣,並在下次學習我的錯誤嗎?或者有沒有辦法重新命名,除了引用我的表,並讓所有的行爲?

謝謝! - 斯科特中號

+0

您可以嘗試使用'= FAPIA F.A.PIA;'你的代碼的可讀性更好的開始。然後,只要你想特別想要'F.A.PIA.Member',你只需要'FAPIA.Member'。沒有真正的理由不把不同項目中的類似事物命名爲相同的東西。 –

+0

*「沒有真正的理由不要在不同的項目中有類似的東西被命名爲相同的東西。」* - 這是一口。 [有關此主題的一些閱讀](http://blogs.msdn.com/b/ericlippert/archive/2010/03/09/do-not-name-a-class-the-same-as-its-namespace -part-one.aspx) – Servy

回答

2

選項:

  1. 創建由using directive C#的命名空間別名。
  2. 創建一個處理PIA表的類包裝器,並提供更方便用戶訪問該表的方法。
  3. 完全quailify C#命名空間的命名空間項。
  4. 重命名錶,重構,然後更改名稱。
  5. 創建一個沒有命名衝突的新解決方案。
  6. 直播與作爲是idiosyncrasis ...
+0

感謝OmegaMan的創意;我非常想嘗試#4,但最終我選擇忍受我的恥辱(#6)。 –

相關問題