2012-08-02 127 views
0

我正在開發一個web項目,並被要求將某個文件從一個項目移動到另一個項目,但兩個項目都在同一個解決方案中。所以我將File1從項目A遷移到項目B.但是,我在File1中有一個名爲「Bar」的類的「Foo」命名空間。但是,我在項目B中有一個「Foo」命名空間,而在另一個「Foo」命名空間中,我有另一個「Bar」類。如何知道重命名命名空間或類不是一種選擇,我該如何解決這個問題?相同命名空間中的相同類名

謝謝

阿帕德·拉約什。

+0

顯然你不能除非你想合併酒吧類,使他們兩個部分類。 – 2012-08-02 16:01:48

+1

如果您無法更改類或名稱空間,那麼它沒有太多的遷移。同一程序集中的兩個類不能具有相同的類名稱和名稱空間。如果這些類在不同的程序集中,但有一種方法可以做到這一點,但這並不適用於此。 – Jodrell 2012-08-02 16:02:15

+0

不要命名與其命名空間相同的類。 http://blogs.msdn.com/b/ericlippert/archive/2010/03/09/do-not-name-a-class-the-same-as-its-namespace-part-one-as.aspx – asawyer 2012-08-02 16:08:06

回答

0

我已經設法通過給B項目提供一個默認名稱空間來解決我的問題,因此在B項目中生成的給定名稱空間終於在項目的默認名稱空間內並且來自該DLL的名稱空間仍然存在在默認名稱之外項目的王牌。

+0

所以,你改變了名稱空間,你說,你做不到。 – Jodrell 2012-08-03 08:27:28

+0

我已經更改了項目的默認名稱空間,所以名稱空間的位置不同,但我沒有更改名稱空間,它是相同的,但它位於命名空間圖形中的其他位置。 – 2012-08-03 13:47:11

+0

如果這是一個VB.Net項目,它沒有「默認」命名空間。它有一個「根」名稱空間,在編譯時,它將成爲該類名稱空間的一部分,因此,實際上,您更改了名稱空間。 – 2012-08-03 14:51:09

0

你不能這樣做。您可能需要更改源或目標的名稱空間或類名稱。

+0

我已經設法做到了這一點,正如我在答案中所闡述的那樣。我所有的測試都成功了。 – 2012-08-02 19:12:15

1

只要你有兩個選擇:在類或命名空間

  • 合併兩個酒吧類的

    1. 重命名(你可以讓他們兩個部分,或者從一個移動到另一個代碼合併它們)
  • +0

    不,在我的情況下,重命名類和名稱空間不是一個選項,正如我在我的問題中所述。這兩個Bar類在概念上非常不同,它們不屬於一個整體,當且僅當兩個類沒有太大區別時,第二個選項纔是可行的。 – 2012-08-02 19:11:36

    +0

    @LajosArpad如果更改命名空間不是一個選項,爲什麼它是你的答案? – Jodrell 2012-08-03 08:28:37

    +0

    我沒有更改名稱空間,我更改了其他項目,這是項目的默認名稱空間。 – 2012-08-03 13:47:51

    相關問題