命名命名空间

时间:2009-11-20 19:38:58

标签: c# .net namespaces

我在尝试弄清楚如何恰当地命名我的命名空间时遇到了问题。我的命名空间目前是:

<CompanyName>.<ProductName>.Configuration

但是,使用“配置”与:

冲突
System.Configuration

更糟糕的是,我还有一个名为ConfigurationManager的类。我知道我可以将其更改为:

<CompanyName>.<ProductName>.<ProductName>Configuration

但这似乎是多余的。有什么想法吗?

编辑:另外,我知道在调用任何一个类时我可以完全限定调用代码,但System.Configuration命名空间和<CompanyName>.<ProductName>.Configuration命名空间中的类的使用频率会变得难看代码。

EDIT2:提供细节:

使用声明:

using System.Configuration;
using SummitConfiguration = SST.Summit.Configuration;

问题行     配置config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal);

错误消息 “SST.Summit.Configuration”是一个“命名空间”,但它像“类型”一样使用(对于上面的问题行)

4 个答案:

答案 0 :(得分:11)

通常,在这种情况下,我会离开Configuration命名空间,并使用别名来访问我的命名空间(而不是完全限定)。例如:

using System.Configuration;
using PC = MyCompany.MyProduct.Configuration;

// ...

string configValue = PC.ConfigurationManager.GetValue("Foo");

答案 1 :(得分:2)

做这样的事情怎么样:

using System.Configuration;
using MyCompany.MyProduct.ProdConfig

using System.Configuration;
using MyCompany.MyProduct.Config

答案 2 :(得分:1)

使用配置命名空间应该没有问题 - 您只需要通过完全限定名称来明确引用您想要的命名空间。这有点痛苦,但我认为如果命名空间中的对象确实处理配置,那么明确的命名约定要比提出不同的名称更好。正如其他人所建议的那样,你也可以使用别名。

答案 3 :(得分:0)

这可能不适合你,但当我遇到这个时,我只是重命名我的命名空间和/或类。类似于Config.ConfigManager。