2010-05-13 8 views
0

Je travaille sur une application Internet qui a été configurée en tant que projet SITE web (je sais ...) dans Visual Studio. J'ai besoin d'ajouter des fonctionnalités/fonctionnalités supplémentaires, donc j'ai ajouté une bibliothèque de classes au projet et je l'ai référé dans le projet du site web principal. Le problème se pose maintenant parce que j'ai besoin d'utiliser des objets de base qui vivent dans le répertoire App_Code dans le projet de site Web, mais ce projet ne semble pas exposer sa DLL comme le font les projets de bibliothèque/code. Pour cette raison, je ne peux pas ajouter une référence au projet de site Web dans la bibliothèque de classes pour tirer parti du code/des objets communs à l'ensemble du site.Comment ajouter une référence à un projet d'application Web dans une bibliothèque de classes associée?

Je ne peux pas déplacer le contenu de App_Code, donc je suis à la recherche d'un moyen de faire référence à la dll de projet de la nouvelle bibliothèque de classes. Quelqu'un peut-il suggérer une solution de contournement? Toute aide v. Avec reconnaissance :-)

+1

Donc, vous voulez référencer la bibliothèque de classes du site web et le site web de la bibliothèque de classes .... un tout noir sera généré devant vos yeux :-p S'il vous plaît laissez-nous savoir pourquoi déplacer des classes de App_Code à la bibliothèque de classe n'est pas une option. –

+0

Lol à des trous noirs. Apparemment, le temps requis pour migrer vers ce que je pense être le bon modèle (projet d'application Web) ne peut pas être justifié comme une «analyse de rentabilisation». – 5arx

+0

Je voudrais présenter l'analyse de rentabilisation qui fonctionne autour de la mise en place actuelle pour atteindre wahtever, c'est que vous travaillez actuellement sur impliquerait plus de temps et de travail que de refactoring puis de continuer avec des choses à partir de là. Surtout si vous incluez tous les bugs et problèmes probables que vous rencontrerez sur la route en dupliquant le code. Il ne peut y avoir beaucoup de travail, il suffit de déplacer quelques classes et de mettre à jour quelques espaces de noms. –

Répondre

3

Vous ne serez pas en mesure de le faire. Cela créerait une référence circulaire.

Je suis curieux de savoir pourquoi vous ne pouvez pas déplacer des éléments dans App_Code. La façon «correcte» de faire ce dont vous avez besoin serait de créer une troisième bibliothèque «partagée» avec les classes qui doivent être utilisées à la fois sur le site Web et dans la nouvelle bibliothèque, et de la référencer à partir des deux.

+0

Oui, c'était ma réponse instinctive à ce problème, semble que je vais devoir dupliquer le code dans ma bibliothèque. Merci d'avoir lu :-) – 5arx

0

Je déplacerais l'une des classes dans le répertoire App_Code de votre site Web dans le nouvel assembly de bibliothèque de classes. Si vous avez des fonctionnalités communes qui ne sont pas spécifiques à notre site (ce qui semble être le cas si vous voulez faire référence à ce code dans la bibliothèque de classes), l'emplacement approprié pour conserver ces classes se trouve dans ce référentiel commun. Si vous les gardez dans le même espace de noms, le code devrait bien se recompiler.

0

Vous pouvez dire à visual studio que vous générez un assembly de nom fixe pour votre code de site Web et que vous le référencez.

Quoi qu'il en soit IMHO c'est une mauvaise (vraiment mauvaise) pratique de faire de telles choses sur vos projets, car cela générerait une référence circulaire. Pourquoi ne pouvez-vous pas retirer votre app_code du projet webapp?

Questions connexes