Зачем мне нужен глобальный :: здесь? - PullRequest
3 голосов
/ 09 июня 2011

Я столкнулся ... Я не думаю, что назвал бы это проблемой так же сильно, как причудой.Это смущает и смущает меня.

Я добавляю Ninject на мой сайт.Работает нормально.Никаких вопросов по устранению неполадок Ninject специально, но я столкнулся с этим при настройке моих модулей ...

Вот мой файл SessionModule.cs.

namespace Lightcast.Web.Mvc.Injection.Modules {
    public class SessionModule : Ninject.Modules.NinjectModule {

        public override void Load() {
        }
    }
}

Также показан на этом снимке экрана.

SessionModule.cs

Я получаю ошибку

Неизвестный тип «Модули» Lightcast.Web.Mvc.Injection.Ninject

Теперь, если я изменю это на это ...

SessionModule.cs(2)

Это работает просто отлично.Очевидно, что существует столкновение пространства имен.Что я не понимаю, это почему никогда не сталкивался с этим раньше.Мне это кажется совершенно странным.

Ответы [ 2 ]

5 голосов
/ 09 июня 2011

Причина, по-видимому, в том, что где-то в вашем проекте существует пространство имен или тип с именем Lightcast.Web.Mvc.Injection.Ninject, которое скрывает глобальное пространство имен NInject.

4 голосов
/ 09 июня 2011

Существует класс или пространство имен с именем Ninject где-то внутри пространства имен Lightcast.Web.Mvc.Injection.Modules или одного из его родительских пространств имен.

Ошибка возникает из-за того, что компилятор C # ищет типы и пространства имен, пытаясь найти их в текущем пространстве имен и, если не может, пробирается к глобальному пространству имен.

...