Comment pouvez-vous ajouter une logique supplémentaire pour taper la résolution au moment de l'exécution?

StackOverflow https://stackoverflow.com/questions/122544

  •  02-07-2019
  •  | 
  •  

Question

Existe-t-il un moyen générique, sans créer ni gérer votre propre hôte CLR, de localiser et de charger un type si ce type n'est pas trouvé?

Ce qui suit n’est qu’un exemple. Dans votre hâte d'être la première réponse, ne suggérez pas le nouveau cadre des compléments ni le MEF comme solution à ma question.

Un exemple serait un exemple avec des compléments. Votre application lit un fichier qui répertorie les types à utiliser pour une fonction particulière. L'application tente d'instancier ces types. S'ils ne sont pas déjà chargés dans l'appdomain, la méthode échoue. Je recherche un événement que je peux gérer ou un composant que je peux fournir avec ma propre implémentation, qui me permettra de gérer avec élégance ces situations et de fournir une logique supplémentaire pour le chargement de ces assemblys.

Autant que je sache (à moins que quelqu'un ait un exemple qui fonctionne), aucun des événements AppDomain mentionnés jusqu'à présent ne se déclenche lorsqu'un type n'est pas trouvé.

Attendez, apparemment, cela fonctionne ! Je ne sais pas ce que j'ai fait de mal auparavant, mais cet événement se déroule bien.

Était-ce utile?

La solution

Il existe des AppDomain que vous pouvez utiliser.

Vous souhaiteriez un TypeResolve , et éventuellement, l'événement AssemblyResolve .

Vous pouvez également en savoir plus sur la manière dont le runtime .net résout les assemblies , il est donc possible de définir ces informations dans la section de vérification.

Autres conseils

N'est-ce pas possible simplement en utilisant les événements AppDomain?

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