2009-05-05 3 views
0

Je ce scénario:Type de caching

j'ai un assemblage avec mes types d'objets métier et cet ensemble est chargé avec la réflexion lors de l'exécution (Assembly.LoadFile) dans WCF avec KnownTypesProvider mais cet ensemble peut changer peut-être (certains développeurs ajouter une nouvelle méthode ou une nouvelle propriété o même changer une fonctionnalité peut-être bugfix) mais en utilisant Assembly.LoadFile le fichier d'assemblage est verrouillé et je ne peux pas remplacer cet assembly.

Existe-t-il une structure pour la mise en cache de type? en utilisant l'assemblage ver. ou date de mod d'assemblage? ou existe même un moyen de charger sans serrure?

THX !!!!!!!!

Répondre

2

Vous ne pouvez pas échanger un assembly pendant que l'application est en cours d'exécution. Même si vous utilisez ReflectionOnlyLoad, il est verrouillé. Je pense que vous ne pouvez pas non plus décharger l'assemblage. Vous devez redémarrer votre application.

S'il est important de recharger automatiquement les assemblys, vous pouvez essayer de placer tout ce qui dépend de cet assemblage dans un AppDomain et redémarrer le domaine de l'application.

Si vous utilisez GAC, vous pouvez installer une autre version de l'assembly, la rediriger et redémarrer l'application.