如何在Visual Studio解决方案中找到所有命名空间?

时间:2015-07-27 03:30:38

标签: c# .net visual-studio visual-studio-2012 namespaces

我问这个问题是因为我在我的解决方案中遇到了编译错误: '礼金券'是一个名称空间'但是像''

一样使用

我尝试添加一个using指令,如: 使用GiftCard.Data.Entity;

这是找到GiftCard的正确命名空间,但错误不会消失。当我在我的代码中添加完全限定名称时,即GiftCard.Data.Entity.GiftCard

...然后错误消失,代码编译。

但我想知道为什么using指令不起作用。每次我需要使用该类型时,我都不想用完全限定的名称来混淆我的代码。不知何故,错误消息说我将GiftCard定义为某个名称空间。那么如何在我的解决方案中找到所有命名空间,以便我知道它的定义位置,因为我需要删除或重命名GiftCard命名空间。

2 个答案:

答案 0 :(得分:5)

你有不同的问题和不同的问题。

问题

The Framework Design GuidelinesDo not use the same name for a namespace and a type in that namespace

  

例如,不要将Debug用作命名空间名称,然后再使用   在同一名称空间中提供名为Debug的类。几个编译器   要求这些类型完全合格。

那是:

namespace Debug
{
    public class Debug{ … }
}

OR

namespace MyContainers.List
{
    public class List { … }
}

为什么这么糟糕? Do not name a class the same as its namespace

回答问题

查看 - >对象浏览器(快捷方式: Ctrl + Alt + J

答案 1 :(得分:2)

使用Powershell ......

dir -r -filter * .cs | Select-String -pattern" ^使用" | Select-Object -expand Line -unique |格式列表 - 属性行

在解决方案根目录中运行上面的内容,输出就像......

使用NUnit.Framework;

使用System.Collections;

使用System.Collections.Generic;

使用System.Linq;

使用System.Text;

使用System.IO;

了解更多信息请通过 https://social.msdn.microsoft.com/Forums/vstudio/en-US/03dae1a4-91ed-41eb-ae1a-082b56e42f67/how-to-get-all-namespaces-in-one-solution