Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 命名名称空间_C#_.net_Namespaces - Fatal编程技术网

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