2008-09-23 6 views
2

Existe-t-il un moyen générique, sans créer et gérer votre propre hôte CLR, de prendre en charge la localisation et le chargement d'un type si ce type n'est pas trouvé?Comment pouvez-vous ajouter une logique supplémentaire à la résolution de type lors de l'exécution?

Ce qui suit est juste un exemple. Dans votre hâte d'être la première réponse, ne proposez pas le nouveau cadre d'add-in ou le MEF comme une 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. Si elles ne sont pas déjà chargées dans l'appdomain, la méthode échoue. Je suis à la recherche d'un événement que je peux gérer ou d'un composant que je peux fournir pour ma propre implémentation, ce qui me permettra de gérer ces situations avec élégance et de fournir une logique supplémentaire pour le chargement de ces assemblages.


Pour autant que je peux dire (à moins que quelqu'un a un exemple qui fonctionne) aucun des événements AppDomain so-far mentionné le feu quand un type est introuvable.


Attendez, apparemment this is working! Je ne sais pas ce que j'ai fait de mal avant, mais cet événement se déclenche bien et bien.

+0

Pourriez-vous nous fournir un échantillon de code qui ne fonctionne pas pour vous? Que de cet exemple (http://msdn.microsoft.com/en-us/library/system.appdomain.typeresolve.aspx) ne fonctionnera pas? –

Répondre

4

Il existe des événements sur le AppDomain que vous pouvez utiliser.

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

En outre, vous pouvez en savoir plus sur la façon dont le .net runtime resolves assemblies, il est donc possible que vous pourriez définir cette information dans la section de sondage.

0

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

Questions connexes