2012-08-02 80 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

    相关问题