2010-04-08 8 views
0

Cela me semble confus - en créant une bibliothèque de classes et en ajoutant toutes les références nécessaires pour les fichiers sources qu'elle contient. Maintenant, d'emblée, plus de 300 erreurs de compilateurs se plaignaient des espaces de noms manquants. La bibliothèque va maintenant compiler après avoir simplement ajouté toutes les références System. *, Mais ce n'est évidemment pas le meilleur moyen.Correspondance des références .NET aux espaces de noms

I.e. si une classe a besoin de using System.Web.Script;, il n'y a pas de référence System.Web.Script, comment pourrais-je savoir laquelle de ces références l'a contenue? System.Web didnt.

Répondre

2

Oui un espace de noms et un assembly sont deux concepts différents dans .NET ... Ils peuvent, mais n'ont pas besoin de partager un nom commun.

La meilleure chose est d'inspecter le type qui vous manque dans MSDN (tapez F1 dans Visual Studio lorsque votre curseur de texte est au-dessus d'une classe qui vous manque). La documentation MSDN vous indiquera dans quel espace de noms et dans quel assembly ce type est défini.

1

Namespaces peut être re-openwd si plus d'un ensemble peut définir des classes dans un espace de noms.

// AssemblyFoo.dll 
namespace MyNamespace { 
    class Bar {} 
} 

// AssemblyBaz.dll 
namespace MyNamespace { 
    class Qux {} 
} 

Pour MyNamespace.Bar vous devez faire référence AssemblyFoo.dll, pour MyNamespace.Qux vous devez faire référence AssemblyBaz.dll. Vous ne pouvez pas déduire les assemblys nécessaires uniquement à partir de l'espace de noms.

La meilleure chose à faire est de rechercher où la classe est définie à l'aide du MSDN.

1

Vous pouvez également utiliser l'Explorateur d'objets dans Visual Studio pour cliquer sur un espace de noms et afficher l'assembly et son chemin d'accès. Tant que l'assembly est dans le GAC ou dans Visual Studio, vous devriez être capable de le trouver.

Vous pouvez également taper "System.Web.Script" dans la boîte de recherche du navigateur d'objets, et il trouvera l'espace de noms, que vous pouvez ensuite cliquer droit et dire "Aller à la définition". Cela vous mènera au parent, qui sera le groupement d'espace de noms/d'assemblage, et vous verrez le fichier .dll dans lequel il se trouve.

Questions connexes