a. Моя программа C# загрузит dll (которая является динамической), а теперь давайте возьмем a.dll (аналогично моя программа будет загружать больше dll, например b.dll, c.dll и т. Д.).не удалось загрузить dll или его зависимость
b. Моя программа вызовет метод «Onstart» внутри a.dll (он постоянный для всех dll).
Я могу достичь вышеуказанных 2 случаев с помощью механизма отражения.
Проблема
a. Если у моего a.dll есть какая-либо ссылка, скажите xx.dll или yy.dll, тогда при попытке вызвать
OnStart метод a.dll из моей программы. Я получаю «невозможно загрузить dll или одну из его зависимостей». Смотрите фрагмент кода
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;
}
}
}
обычно я получаю сообщение об ошибке в строке «объект OBJ = Activator.CreateInstance (ф);» это потому, что у a.dll есть ссылка на xx.dll, но в моей программе у меня нет ссылки на xx.dll. Кроме того, я не могу иметь ссылку на xx.dll в моей программе, потому что a.dll является внешней сборкой и может иметь любую ссылку на нее.
Kinldy help !!!