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);
}
Динамическая компиляция и вызов из сборки
Хотелось бы реализовать динамическую компиляцию, но столкнулся с проблемой.
Руководствовался этой и этой темами. Суть проблемы вот в чем - при запуске метода из dll не проходит преобразование типа, более того, складывается ощущение, что это совсем другие классы.
Вот так я подгружаю dll и запускаю метод Run
Код:
Код:
class Class0 { ... }
class Class01 : Class0 { ... }
class Class01 : Class0 { ... }
Exception: Невозможно преобразовать объект типа "TestInvoke.Class01" к типу "TestInvoke.Class0".
Вот проектик - http://depositfiles.com/files/0wbgghvr7