C#.NET un espace de nom n'existe pas dans l'espace de noms d'erreur uniquement lorsque l'aide est en dehors de l'espace de noms local de la directive - pourquoi?

À l'aide .NET 2.0, C#, Windows Forms développement, Bibliothèque d'Entreprise 3.1.

Nous avons un projet d'espace de noms (appel de Projet informatique). Nous disposons également de plusieurs sous-espaces de noms à l'intérieur de ce projet, par exemple Projet de.Namespace1, Projet.Namespace2, etc.

Dans une classe, nous définissons les énumérations pour être utilisé avec la Bibliothèque d'Entreprise de Journalisation bloc, comme ceci:

namespace Project.Logging
{
  public static class Logging
  {
    public enum LogPriority
    {
      //enum values here
    }
  }
}

Dans une autre classe, j'utilise les valeurs enum j'ai donc besoin de déclarer à l'aide d'instruction. Même projet, donc il n'y a pas d'assemblée de référence, à droite?

Si je déclare les utiliser à l'intérieur de l'espace de noms local, comme ça, ça fonctionne très bien:

namespace Project.SomeName
{
  using Project.Logging;

  //code referencing the Logging enum
}

Cependant, si je mets de l'instruction à l'aide à l'extérieur de l'espace de noms local de la déclaration, j'ai le "type ou le nom d'espace de noms 'LogPriority" n'existe pas dans l'espace de noms " du Projet.Journalisation'... Comme ceci:

using Project.Logging;

namespace Project.SomeName
{
  //code referencing the Logging.LogPriority.whatever
}

Pourquoi est-ce? Quelqu'un a couru à travers ce avant?

Pourriez-vous poster le code qui fait référence à la LogPriority enum pour les deux cas? L'enum est défini à l'intérieur d'une classe & je pense que ça pourrait être un problème, en quelque sorte.

OriginalL'auteur DaveN59 | 2009-11-19