我在尝试弄清楚如何恰当地命名我的命名空间时遇到了问题。我的命名空间目前是:
<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”是一个“命名空间”,但它像“类型”一样使用(对于上面的问题行)
答案 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。