Вызов метода через отражение (Reflection) - C#
Формулировка задачи:
Допустим у меня есть приложение на c# со следующим кодом:
Как с помощью Reflection вызвать метод Hello() из другого приложения (разумеется тоже на c#)??
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Example2
{
class Program
{
public static void Hello()
{
Console.WriteLine("Hi");
}
static void Main(string[] args)
{
Console.ReadLine();
}
}
}Решение задачи: «Вызов метода через отражение (Reflection)»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Reflection;
namespace ConsoleApplication1 {
class Program {
static void Main(string[] args) {
Assembly asm = Assembly.Load(File.ReadAllBytes("ConsoleApplication2.exe"));
Type t = asm.GetType("ConsoleApplication2.Program");
MethodInfo method = t.GetMethod("Hello");
object obj = Activator.CreateInstance(t);
method.Invoke(obj, null);
Console.ReadLine();
}
}
}