这是此问题的扩展:Is it possible to dynamically compile and execute C# code fragments?
但是可以引用某个对象的字段,属性和方法吗?例如:
public class SomeClass
{
public int a, b;
public int SomeMethod(int a, int b, int c)
{
return a + b + c;
}
public void Execute()
{
int c = 3;
string code = "a = b = 2; int result = SomeMethod(a, b, c);";
// Compile and execute code here
}
}
代码显然在功能上没有任何意义,但这只是一个例子。
答案 0 :(得分:0)
我不知道一种方法,但是您可以调用string tmp = Path.GetTempFile()
创建一个临时文件,然后执行code = "void Main(string[] args){int a = b = 2; int result = SomeMethod(a, b, c); File.WriteAllBytes(\"" + tmp + "\", BitConverter.GetBytes(result));"
保存结果。然后,您可以使用BitConverter.ToInt32(File.ReadAllBytes(tmp))
加载它。
答案 1 :(得分:0)
我认为您正在寻找Lambda Expression Serializers之类的东西 DynamicExpresso