2010-03-12 2 views
0

J'ai un site Web et il s'agit d'une application avec administration de site Web.Assemblage de chargement ASP.NET à partir de l'application parente

Est-il possible de charger un assembly à partir d'un site Web dans une application d'administration?

par exemple:

alt text

projet WebAdmin (application Web): dans default.aspx je veux charger l'assemblage ClassLibrary1.dll et créer une instance de type ImportProvider. WebAdmin ne fait pas référence à ClassLibrary1.

Configuration dans IIS:

alt text

répertoire Application "admin" (projet WebAdmin) est en Website1

Merci beaucoup

+0

Y a-t-il une raison pour laquelle vous ne pouvez pas simplement ajouter une référence? – peppy

+0

J'ai un projet d'administration pour de nombreux sites Web et chaque site Web a ses propres fournisseurs spécifiques. –

+0

Vous aurez besoin d'une référence au projet. Si je comprends ce que vous essayez de faire (ce dont je ne suis pas sûr), vous pouvez essayer de ne pas avoir besoin d'une "version spécifique", puis déposer une version différente de la DLL plus tard. Si vous avez plusieurs solutions appelant tous sur le projet WebAdmin, cela devrait également convenir (la référence sera mise à jour pour le projet ClassLibrary1 local, je pense). Cela dit, cela semble être une façon étrange de structurer votre projet. – peppy

Répondre

1

J'ai exactement la même situation.

Créer une interface IImportProvider. Vos sites Web doivent créer leurs propres bibliothèques de classes qui implémentent cette interface (chaque site Web a un fournisseur différent). Maintenant, vous avez un répertoire \ website \ bin \ avec classLibrary.dll spécifique pour chaque site Web qui implémente IImportProvider.

Maintenant vous pouvez utiliser MEF dans votre administration pour charger l'assembly classLibrary.dll. Cela fonctionne pour moi.

+0

Merci, le MEF est génial. –

Questions connexes