谁能解释这种行为以及解决方案是什么?
我通过 nuget 安装了 Ninject.MVC3,这会在 App_Start 文件夹中创建一个名为 NinjectWebCommon.cs 的文件,其命名空间如下:
namespace MvcApplication1.App_Start {
...
using Ninject;
using Ninject.Web.Common;
...
}
现在,我想创建一个 NinjectModule,但在识别 Ninject 命名空间时遇到了一些问题。
namespace MvcApplication1.Ninject.Modules {
using Ninject.Modules
...
}
一旦我在模块中添加 using 语句,NinjectWebCommon.cs 就无法再编译。如果我将 using 放在命名空间之外,它仍然无法编译。
但是,如果我将模块的命名空间更改为 MvcApplication1.Foo,那么无论哪种方式都可以正常工作。
为什么命名这个 MvcApplication1.Ninject.Modules(甚至只是 MvcApplication1.Ninject)会导致 NinjectWebCommon.cs 不再找到它的引用?我认为命名空间的目的是防止这种事情发生?