使用 .NET 2.0、C#、Windows Forms 开发、Enterprise Library 3.1。
我们有一个项目命名空间(称之为项目)。我们在该项目中还有几个子命名空间,例如 Project.Namespace1、Project.Namespace2 等。
在一个类中,我们定义枚举等与企业库日志 block 一起使用,如下所示:
namespace Project.Logging
{
public static class Logging
{
public enum LogPriority
{
// enum values here
}
}
}
在另一个类中,我使用了枚举值,所以我需要声明一个 using 语句。相同的项目,所以没有程序集可供引用,对吗?
如果我在本地命名空间内部声明 using,就像这样,它工作正常:
namespace Project.SomeName
{
using Project.Logging;
// code referencing the Logging enum
}
但是,如果我将 using 语句放在本地命名空间声明之外,我会得到“类型或命名空间名称‘LogPriority’在命名空间‘Project.Logging’中不存在...像这样:
using Project.Logging;
namespace Project.SomeName
{
// code referencing the Logging.LogPriority.whatever
}
这是为什么?以前有人遇到过这个吗?
最佳答案
我以前在使用与其命名空间同名的类时遇到过类似(尽管不完全相同)的问题。
奇怪的是,它似乎在一些开发人员的电脑上编译正常,但在其他人的电脑上却不行。最后,我们确保没有命名空间包含同名的类。
namespace Project.Logging
{
public static class Logging // this is what caused the probems for me
{
}
}
关于C#.NET 命名空间名称在命名空间错误中不存在 - 仅当使用在本地命名空间指令之外时 - 为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1765277/