3 Stimmen

Warum brauche ich hier global::?

Ich habe ... ich glaube, ich würde es nicht so sehr als Problem bezeichnen, sondern eher als eine Marotte. Es verwirrt und verunsichert mich.

Ich füge hinzu Ninject zu meiner Website. Es funktioniert gut. Keine Fragen zur Fehlerbehebung Ninject speziell, aber ich stieß auf diese beim Einrichten meiner Module ...

Hier ist mein SessionModule.cs Datei.

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

        public override void Load() {
        }
    }
}

Auch auf diesem Screenshot zu sehen.

SessionModule.cs

Ich erhalte die Fehlermeldung

Unbekannter Typ 'Modules' von Lightcast.Web.Mvc.Injection.Ninject

Wenn ich es jetzt so ändere ...

SessionModule.cs(2)

Das funktioniert sehr gut. Offensichtlich gibt es also eine Namespace-Kollision. Was ich nicht verstehe, ist warum ? Ich habe niemals Ich habe das schon einmal erlebt. Es scheint mir einfach das absolut Seltsamste zu sein.

5voto

Florian Greinacher Punkte 14008

Der Grund scheint zu sein, dass irgendwo in Ihrem Projekt ein Namespace oder Typ namens Lightcast.Web.Mvc.Injection.Ninject existiert, das die globale NInject Namensraum.

4voto

Jon Punkte 411383

Es gibt eine Klasse oder einen Namespace namens Ninject irgendwo innerhalb des Namensraumes Lightcast.Web.Mvc.Injection.Modules oder einen seiner übergeordneten Namespaces.

Der Fehler tritt auf, weil der C#-Compiler nach Typen und Namespaces sucht, indem er versucht, sie innerhalb des aktuellen Namespaces zu finden und sich zum globalen Namespace durcharbeitet, wenn dies nicht möglich ist.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X