a. Mon programme C# va charger une DLL (qui est dynamique), pour l'instant prenons a.dll (de même mon programme chargera plus dll comme b.dll, c.dll, etc ....).Impossible de charger la DLL ou l'une de ses dépendances
b. Mon programme appellera une méthode "OnStart" dans a.dll (c'est constant pour toute la DLL).
Je suis capable de réaliser les 2 cas ci-dessus par un mécanisme de réflexion. Le problème est
a. Si mon a.dll a une référence dire xx.dll ou yy.dll, alors quand j'essaye d'invoquer
OnStart méthode de a.dll de mon programme. Je reçois "ne pouvait pas charger dll ou une de ses dépendances". Voir l'extrait de code
Assembly assm = Assembly.LoadFrom(@"C:\Balaji\Test\a.dll");
foreach (Type tp in assm.GetTypes())
{
if (tp.IsClass)
{
MethodInfo mi = tp.GetMethod("OnStart");
if (mi != null)
{
object obj = Activator.CreateInstance(tp);
mi.Invoke(obj,null);
break;
}
}
}
En général, je reçois une erreur sur la ligne "objet obj = Activator.CreateInstance (tp);" C'est parce que a.dll a une référence de xx.dll, mais dans mon programme, je n'ai pas la référence de xx.dll. Aussi, je ne peux pas avoir la référence de xx.dll dans mon programme car a.dll est un assembly externe et peut avoir toute référence sur son propre.
Aide de Kinldy !!!