Question

J'ai trois projets dans ma solution .net.
Le projet principal et deux projets de bibliothèque de classe.

Je l'ai découvert que je dois renvoi des projets de bibliothèque de classe.
Puis-je faire? Est-il sûr ou il y a quelques considérations?

Était-ce utile?

La solution

L'IDE ne vous laissera pas lorsque les projets sont dans une solution. Il existe des moyens subtils pour confuzzle il. Mais la solution ne peut pas être construit à partir de zéro (à savoir + Construire Reconstruire) car la référence d'assemblage est pas encore disponible. Factoriser cela, vous voulez probablement un 3ème assemblage que les deux peuvent faire référence.

Autres conseils

Les références circulaires sont possible (via la ligne de commande et quelques astuces, non pas par l'intermédiaire de l'IDE) mais sont une douleur importante; ne le faites pas!

Soit ajouter une supplémentaire assemblage pour les types communs ou fusionner les deux bibliothèques.

À bien des égards, moins est plus simple ... Une myriade de dll ne signifie pas que vous avez atteint la pureté -. Il est juste un gâchis

Quand je l'ai rencontré ce problème, j'ai classes créées qui n'ont des propriétés. Peut-être Employee, Customer, Product, peu importe. Ces classes ne doivent pas nécessairement faire référence à tout autre projet, de sorte que plusieurs projets peuvent les référencer.

Les méthodes qui appartiennent à ces objets (Employee, Customer, Product) vont ensuite dans leurs propres classes dans les autres projets.

Une situation où je l'ai rencontré c'est assez souvent dans une application à trois couches - couche de présentation, couche métier et couche d'accès aux données. Je veux que le DAL pour récupérer des données et remplir un objet employé, qui est retourné à la BLL. Si la classe des employés est en BLL et a les propriétés et méthodes, alors il n'y a aucun moyen facile de remplir un objet employé dans le DAL et le retourner à la BLL - parce que le BLL doit avoir une référence à la DAL, de sorte que le DAL ne peut pas en référence à leur tour la BLL. Création du projet distinct avec des classes de propriétés (seulement Employee, Customer, Product) est un moyen de résoudre ce problème.

Si par « renvoi », vous voulez dire que vous voulez faire ce qui suit:

1) Projet principal contient des références à BIBLIOTHÈQUE-ALPHA et BIBLIOTHÈQUE-BETA

2) Projet BIBLIOTHÈQUE-ALPHA contient des références à BIBLIOTHÈQUE-BETA

3) Projet BIBLIOTHÈQUE-BETA contient des références à BIBLIOTHÈQUE-ALPHA

alors non. Visual Studio ne pourra pas construire MAIN jusqu'à ce qu'il construit ALPHA et BETA . Il ne pourra pas construire ALPHA jusqu'à ce qu'il construit BETA . Et il ne pourra pas construire BETA jusqu'à ce qu'il construit ALPHA . Par conséquent, il sera incapable de quoi que ce soit de construction.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top