2017-09-23 9 views
0

Je développe une structure à n niveaux avec un projet de données, un projet de modèles, un projet de service et un projet Web, mais les références de projet ne fonctionnent pas comme prévu.La référence du projet ne fonctionne pas

J'ai ajouté une référence dans le projet de données au projet de modèles, mais je reçois "type ou espace de nommage 'Modèles' n'existe pas dans l'espace de noms WWJ Plus étrange encore, lorsque vous essayez de créer une instruction 'using' le sommet de mon WWJEntities.cs (dans le projet de données), non seulement il ne montre pas WWJ.Models mais il se montre (Data) et Web ... Comment pourrait-il montrer Web? La direction est opposée - .Web references .data, et non l'inverse. Je l'ai essayé d'enlever et re-ajouter les referenes mais il reste de cette façon. Je suis déconcerté.

image 1 image 2

+0

Pouvez-vous montrer l'espace de noms de la classe dans l'image 1? – less

Répondre

1

espaces de noms et reportez-vous Les garanties ne sont en aucun cas garanties ni cohérentes ni logiques.

Lorsque vous tapez dans une directive using, IntelliSense vous montrera disponible namespaces contenues dans les références assemblées, donc vous pourriez avoir (confusion/indésirables) des situations comme les suivantes:

  • Assemblée Foo.dll:

    namespace Foo { class Foo { } } 
    
  • Assemblée Bar.dll:

    namespace Foo { class Bar { } } 
    

Et maintenant si, Foo devait faire référence Bar, le seul espace de noms que vous verriez lorsque vous tapez une déclaration using serait Foo parce que l'assemblée Bar ne déclare aucun autre espace de noms.

Assurez-vous que ce n'est pas votre cas.

+0

Merci. En fait, dans le processus de N-Tier-ifying ma solution, j'ai déplacé les modèles par défaut pour Identity dans le projet Models, qui a automatiquement renommé les espaces de noms: PI aurait dû mieux savoir quand j'ai posté mais il était très tard et J'étais si fatigué. Merci. – ohanaman