G
Guest
Доброе время суток.
Хотелось бы реализовать динамическую компиляцию, но столкнулся с проблемой.
Руководствовался
Вот так я подгружаю dll и запускаю метод Run
Exception: Невозможно преобразовать объект типа "TestInvoke.Class01" к типу "TestInvoke.Class0".
Вот проектик -
Хотелось бы реализовать динамическую компиляцию, но столкнулся с проблемой.
Руководствовался
Ссылка скрыта от гостей
и
Ссылка скрыта от гостей
темами. Суть проблемы вот в чем - при запуске метода из dll не проходит преобразование типа, более того, складывается ощущение, что это совсем другие классы.Вот так я подгружаю dll и запускаю метод Run
Код:
Assembly assembly = Assembly.LoadFile(fn);
Type type = assembly.GetType("TestInvoke.Runner");
MethodInfo method = type.GetMethod("Run");
ConstructorInfo ctor = type.GetConstructor(Type.EmptyTypes);
object r = ctor.Invoke(null);
object[] param = { new Class01() };
try
{
method.Invoke(r, param); // вызов метода с входным параметром
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
Код:
class Class0 { ... }
class Class01 : Class0 { ... }
Exception: Невозможно преобразовать объект типа "TestInvoke.Class01" к типу "TestInvoke.Class0".
Вот проектик -
Ссылка скрыта от гостей