2009-06-14 4 views
2

Je charge mon montage lors de l'exécution (mais ce assemby est pas refenced par le projet)assemby de charge lors de l'exécution

Assembly a = Assembly.LoadFile(@"fulpath\assName.dll"); 

après que je veux utiliser une classe de cette dll par réflexion

obj = Activator.CreateInstance(Type.GetType("assemblyqualifiedname")); 
mi = obj.GetType().GetMethod("methodname"); 
mi.Invoke(obj, null); 

malheureusement, le taureau revient de Type.GetType("assemblyqualifiedname");

Je ne comprends pas, pourquoi je dois ajouter la référence od dll à projeter?

L'assemblage de charge devrait être suffisant, mais il ne l'est pas.

... merci

+0

Je ne sais pas pourquoi vous devez charger votre montage - mais peut-être ... un coup d'oeil à un cadre de plugin comme MEF (http: //www.codeplex .com/MEF) – tanascius

Répondre

3

Lorsque vous chargez un ensemble manuellement, vous devez utiliser la méthode de getType. Type.getType utilisera l'assembly appelant et sa référence pour rechercher le type. a.GetType trouvera le type, car il regarde à l'intérieur de l'assembly chargé.

0

Quelle est votre objection à l'ajout d'une référence à la DLL dans le projet?

Questions connexes