.NET 2.x Передать метод по сети и запустить его на удаленной машине - C#
Формулировка задачи:
Нужно передать метод (в любой реализации - как делегат, или как-то по-другому) по сети и запустить его на удаленном компе.
Трабла в том, что пишу на .Net 2.0 (чтобы программа смогла запустится на большинстве компьютеров) и применить аля
Func и Action не могу.
Спасибо.
Эта задача нереализуема?)
Решение задачи: «.NET 2.x Передать метод по сети и запустить его на удаленной машине»
textual
Листинг программы
var csc = new CSharpCodeProvider(new Dictionary<string, string>() { { "CompilerVersion", "v4.0" } });
var parameters = new CompilerParameters(new[] { "mscorlib.dll", "System.Core.dll" }, "foo.dll", false);
parameters.GenerateExecutable = false;
CompilerResults results = csc.CompileAssemblyFromSource(parameters,
@"using System;
class Program
{
public int Method(int a ,int b )
{
return a*b ;
}
}");
results.Errors.Cast<CompilerError>().ToList().ForEach(error => Console.WriteLine(error.ErrorText));
Assembly assembly = Assembly.LoadFrom("foo.dll");
Type type = assembly.GetType("Program");
object instanceOfMyType = Activator.CreateInstance(type);
MethodInfo method = type.GetMethod("Method");
Console.WriteLine((int)method.Invoke(instanceOfMyType, new object[] { 5, 5 }));