Je travaille sur un projet MVC dans lequel nous chargeons dynamiquement des DLL. Dans ces dll sont d'autres projets MVC (nous les appelons modules). Nous faisons cela pour que nous puissions supporter un plug-and-play pour les modules, les mettre à jour sans publier l'ensemble du projet.Impossible de définir @model en classe dans la DLL dynamique chargée
Nous avons plusieurs modules simples qui fonctionnent, maintenant je suis confronté à un problème avec un nouveau module que je développe.
Dans toute la vue du module, nous définissons le modèle comme @model dynamic
. Mais parce que je veux utiliser @Html.TextBoxFor()
thats pas permis sinon il en résulte
Un arbre d'expression ne peut pas contenir une opération dynamique
Je pensais, pas de problème, je vais juste changer pour @model ModuleNameSpace.ClassName
Mais maintenant l'ensemble de la vue ne peut plus être chargé ... l'exception dit:
La vue trouvée à '~/PATH_TO_VIEW_FILE' n'a pas été créée.
Avec @model dynamic
la vue fonctionne et lorsque je crée un projet séparé, il travaille aussi avec @model ModuleNameSpace.ClassName
. Donc, il semble être un problème parce que nous ajoutons l'assemblage dynamique?
Les modules sont chargés comme ceci:
System.Reflection.AssemblyName name = System.Reflection.AssemblyName.GetAssemblyName(module.FullName);
System.Reflection.Assembly assembly = System.Reflection.Assembly.Load(name);