C# 命名名称空间
我在试图找出如何正确命名我的命名空间时遇到了一个问题。我的命名空间当前为:C# 命名名称空间,c#,.net,namespaces,C#,.net,Namespaces,我在试图找出如何正确命名我的命名空间时遇到了一个问题。我的命名空间当前为: <CompanyName>.<ProductName>.Configuration 更糟糕的是,我还有一个名为ConfigurationManager的类。我知道我可以把它改成: <CompanyName>.<ProductName>.<ProductName>Configuration 问题行 Configuration config=Configurat
<CompanyName>.<ProductName>.Configuration
更糟糕的是,我还有一个名为ConfigurationManager的类。我知道我可以把它改成:
<CompanyName>.<ProductName>.<ProductName>Configuration
问题行
Configuration config=ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal)
错误消息
“SST.Summit.Configuration”是一个“名称空间”,但它像“类型”一样使用(用于上面的问题行)通常,在这种情况下,我会离开配置名称空间,并使用别名访问我的名称空间(而不是完全限定)。例如:
using System.Configuration;
using PC = MyCompany.MyProduct.Configuration;
// ...
string configValue = PC.ConfigurationManager.GetValue("Foo");
使用配置的名称空间应该没有问题——您只需要通过完全限定名称来显式引用所需名称。这有点痛苦,但我认为如果名称空间中的对象真正处理配置,那么清晰的命名约定比使用不同的名称要好。正如其他人所建议的,您也可以使用别名。这样做怎么样:
using System.Configuration;
using MyCompany.MyProduct.ProdConfig
或
这可能对您不起作用,但当我遇到这种情况时,我只是重命名我的命名空间和/或类。类似Config.ConfigManager的东西。是否可以使用配置的缩写形式,例如Config?实际上也可以。我希望避免重复使用产品名称,因为名称空间中前面提到了这一点,但缩写可能不是一个坏主意。这是有道理的,但我得到的“mynamespace”是一个“名称空间”,但在使用System.Configuration.Configuration类时与“type”一样使用。有什么想法吗?你需要提供更多的信息-如果你发布你的using语句(别名+其他),再加上几行显示调用,我们可以缩小范围。不过,我发布的内容效果很好——我总是使用它。你也在那里“使用Summit”吗?听起来编译器正在查找“配置”并将其连接到“Summit.Configuration”,这可能发生在“using Summit”中;我也使用了名称空间别名,并在这方面取得了很好的成功。这种方法的唯一问题是,当您可能不需要在引用本地配置类型而不是System.Configuration类型的所有其他类中使用名称空间别名时,名称空间别名可能会成为一个模糊点。突然你的名字不一致了。如果这让人觉得不舒服,您需要将本地配置类本身重命名为其他类(例如Config)。
using System.Configuration;
using PC = MyCompany.MyProduct.Configuration;
// ...
string configValue = PC.ConfigurationManager.GetValue("Foo");
using System.Configuration;
using MyCompany.MyProduct.ProdConfig
using System.Configuration;
using MyCompany.MyProduct.Config