2010-11-10 9 views
0

J'ai un "projet Web" dans VS. structure des fichiersUtilisation des espaces de noms

- AdminCms 
    - Sections 
    - CmsAuthors 
- App_Code 
    - Business Logics 
    - Common 
     - BuilderStrings.cs 
    - DataAccess 
     -CmsModel.edmx 

Quand je Générez le projet VS dans un fichier BIN Créer Cms.dll.

Dans le fichier "BuilderStrings.cs" J'utilise:

namespace Cms.App_Code.BusinessLogics.Common 

En utilisant ce code à partir du dossier "CmsAuthors"

using Cms.App_Code.BusinessLogics.Common; 

Comme jusqu'à présent tout fonctionne bien.

Maintenant, pour ma compréhension que je devrais être en mesure de nommer l'espace de noms que je veux ex:

namescape Wdg.Cms.Common 

donc si je l'utilise:

using Wdg.Cms.Common; 

script doit être le travail très bien. Au lieu de cela, j'ai une erreur "Missing Assembly Reference".

  • Qu'est-ce qui ne va pas?
  • C'est namespae une sorte de chemin comment récupérer la classe?
  • Pourquoi je ne peux pas utiliser un nom différent?

Merci les gars pour vous aider!

+0

Apparemment, il n'y a pas d'erreur (mais pour l'utilisation de "namesCaPe" au lieu de namesPaCe, mais je pense que c'est juste une faute de frappe) êtes-vous sûr que l'erreur provient de cet espace de noms? pouvez-vous fournir plus d'informations? –

+0

Erreur est manquant Référence de l'assembly, OUI je pense est l'utilisateur de l'espace de noms, en fait, si j'utilise la version de nom automatique, il fonctionne. si j'ai changé avec mon nom personnalisé, non? des idées? Puis-je changer le nom de l'espace de noms sans changer la structure des fichiers? J'utilise VS comme PROJET WEB .. merci – GibboK

Répondre

1

Il est parfaitement bien. Avez-vous sauvegardé et reconstruire votre projet?

** J'ai reçu l'erreur pour la première fois car je n'ai pas enregistré mes modifications dans app_code.

  1. Rien à redire ici.
  2. L'objectif principal de l'espace de noms est d'éviter la collision de nom de classe. Par exemple, vous avez StringBuilder.cs dans App_Code/Admin et App_Code/Common, vous pouvez les différencier en utilisant l'espace de nom: Wdg.Cms.Common.StringBuilder et Wdg.Cms.Admin.StringBuilder
  3. Vous pouvez utiliser un nom différent.
+0

Salut Lee, je comprends votre point de vue, et je pensais la même chose, mais quand je change le nom de l'espace de noms, je reçois la même erreur. Tout mon code a été construit comme CMS.DLL ..... est pour cette raison que je ne peux pas utiliser ailleurs un espace de noms personnalisé Wdg.Cms.Common ???? merci pour maintenant! – GibboK

+0

Salut, désolé l'avez-vous testé comme WEB PROJECT ou WEB SITE dans VS? merci – GibboK

+0

Je l'ai testé comme site Web dans VS – bla

0

Vous devez conserver vos espaces de noms identiques tout au long de votre solution. Vous avez utilisé Cms.App_Code.BusinessLogics.Common à plusieurs endroits, alors continuez à l'utiliser partout.

Votre utilisation de Wdg.Cms.Common peut être la cause de votre erreur d'assemblage manquant.

+0

Merci Lane, désolé mais mes questions est pourquoi je ne peux pas donner le nom scape comme je veux ?? ressemble plus à un chemin de fichier .. merci de votre temps – GibboK

1

namespaces doivent être définies en utilisant les conventions, selon Microsoft "La règle générale pour nommer les espaces de noms est d'utiliser le nom de l'entreprise, suivi du nom de la technologie et le cas échéant la fonctionnalité et le design comme suit: CompanyName.TechnologyName [.Feature] [.Design] ". Jetez un coup d'oeil ici: http://msdn.microsoft.com/en-us/library/893ke618%28VS.71%29.aspx

http://msdn.microsoft.com/library/ms229002

http://10rem.net/articles/net-naming-conventions-and-programming-standards---best-practices

Questions connexes