2012-06-07 138 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)。 –

相关问题