2010-09-06 5 views
4

J'appelle mon projet de couche de gestion dans Web Project. J'ai ajouté refuser le projet de couche de gestion au Web. Lorsque j'appelle classe dans un projet BL, j'ai besoin d'écrire deux fois cet espace de noms. Je ne sais pas pourquoi ça arrive.Pourquoi l'espace de noms assembly vient deux fois?

MyCompanyName.HRHead.DataLayer.MyCompanyName.HRHead.DataLayer.User 

Je suppose que d'appeler

MyCompanyName.HRHead.DataLayer.User 

Dans mon projet, BL je définissais tout espace de noms des classes est MyCompanyName.HRHead.DataLayer

S'il vous plaît, aidez-moi.

Merci à l'avance

Répondre

2

Je suppose certaines choses des balises que vous utilisez. Vous utilisez un assembly écrit dans VB.NET dans votre autre projet. Les propriétés de projet VB.NET incluent un attribut "espace de noms par défaut" et qui peut être défini avec l'espace de noms que vous avez défini explicitement en haut de vos classes. Supprimez l'espace de nom par défaut (décochez-le) dans les propriétés du projet et recompilez le même.

6

En VB, le projet a un espace de noms par défaut - et cela est appliqué comme préfixe pour tout ce que vous écrivez dans la source. C'est pas comme C#, où l'espace de noms par défaut du projet affecte juste le modèle de code source lorsque vous ajoutez un nouvel élément. Par conséquent, si l'espace de noms par défaut de votre projet est Foo.Bar et que également déclare un espace de noms de Foo.Bar.Baz, l'espace de noms complet sera Foo.Bar.Foo.Bar.Baz.

Je vous suggère de modifier les paramètres du projet ou simplement de supprimer le préfixe commun de votre code source.

0

Si vous utilisez C#, vous pouvez utiliser ce segment de code:

using MyCompanyName.HRHead.DataLayer.User = MyCompanyName.HRHead.DataLayer.MyCompanyName.HRHead.DataLayer.User; 

, vous pouvez utiliser l'espace de noms MyCompanyName.HRHead.DataLayer.User au lieu de MyCompanyName.HRHead.DataLayer.MyCompanyName.HRHead.DataLayer .user

Cordialement, pro

0

vous pouvez également accéder à l'espace de noms si vous commencez de l'espace de noms global en C# comme ceci: global::MyCompanyName.HRHead.DataLayer.User

Questions connexes