Obtenir de l'espace de Noms, le nom de la classe à partir d'une dll en C# 2.0
Je vais obtenir dll de façon dynamique. J'ai besoin de charger la dll et obtenir de l'espace de noms, le nom de la classe pour appeler une méthode (le nom de la méthode est statique, elle sera toujours "OnStart()").
Essentiellement, j'ai besoin d'exécuter une méthode de chargement de la dll. Quelqu'un peut-il aider!!!.
OriginalL'auteur balaji | 2009-10-20
Vous devez vous connecter pour publier un commentaire.
À la charge de l'assemblage, vous voulez faire cela:
Cela suppose que vous avez les assemblées sur le disque comme des fichiers. Si vous n'avez pas, comme si vous les obtenez à partir d'une base de données comme un tableau d'octets, il existe d'autres méthodes sur le Assemblée qui vous aidera à vous donner un objet d'Assemblage après le chargement.
Pour itérer sur toutes les classes de l'assemblée, vous voulez faire cela:
De trouver le OnStart méthode statique, vous voulez faire cela:
Pour appeler la méthode, vous voulez faire cela:
Si vous avez besoin pour passer des arguments à la méthode, vous serait de les mettre dans un tableau d'objets:
Le code ci-dessus peuvent être réduits à la suivante par l'utilisation de Linq pour trouver la méthode pour nous:
OriginalL'auteur Lasse Vågsæther Karlsen
Vérifier ici: http://dotnetguts.blogspot.com/2008/12/reflection-in-c-list-of-class-name.html
Et ici pour l'invocation d'une méthode: http://www.csharphelp.com/archives/archive200.html
Si vous chercher un peu plus les conditions de ces liens, vous trouverez beaucoup plus d'informations.
OriginalL'auteur rslite
Au moment de l'exécution espaces de noms juste devenu une partie du nom de type.
Si vous avez besoin de:
MethodInfo
pour la méthode que vous souhaitez appeler.De ces 2-4 sont faciles. 1 pourrait être facile ou non, selon l'endroit où l'assemblée est. En supposant que l'assemblée peut être trouvé par l'assemblée de la charge ("sondage"). Cela permettra d'appeler une méthode statique publique d'un type qui ne prend pas d'arguments, mais a une valeur de retour.
Un certain nombre de détails ici dépend des détails de l'assemblée, le type et la méthode que vous souhaitez appeler.
OriginalL'auteur Richard
L'avantage en utilisant ce code est que l'assemblée est déchargée après utilisation, de sorte que vous pouvez supprimer en toute sécurité la dll après l'invocation de la méthode.
OriginalL'auteur Lucian Podereu