Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从委托i=>i.name获取属性名称_C#_Lambda - Fatal编程技术网

C# 从委托i=>i.name获取属性名称

C# 从委托i=>i.name获取属性名称,c#,lambda,C#,Lambda,在.Net 2.0中,是否有任何方法可以从委托检索属性名 i=>i.Name 当我打电话时: var property=MyMethodi=>i.Name 我希望MyMethod返回字符串名。所以“property”的值应该是Name 在.NET3.5中,有一种简单的方法可以实现表达式树,但我只能使用2.0框架 Chris不,这是不可能的,因为.NET2.0不支持表达式树。匿名委托总是被编译的,它不能被解析为表达式。不,这是不可能的,因为.NET 2.0不支持表达式树。匿名委托总是被编译的,在.

在.Net 2.0中,是否有任何方法可以从委托检索属性名 i=>i.Name

当我打电话时: var property=MyMethodi=>i.Name

我希望MyMethod返回字符串名。所以“property”的值应该是Name

在.NET3.5中,有一种简单的方法可以实现表达式树,但我只能使用2.0框架


Chris

不,这是不可能的,因为.NET2.0不支持表达式树。匿名委托总是被编译的,它不能被解析为表达式。不,这是不可能的,因为.NET 2.0不支持表达式树。匿名委托总是被编译的,在.NET2.0中它不能被解析为表达式。您必须从主体中获取目标方法,调用然后解析IL。我怀疑这不是一项容易的任务


一种选择是在他们针对.NET2.0的System.Core实现中使用Mono表达式树,但仍然使用C3编译器编译。我听说这很好,但这是一个有点激烈的解决方法。

在.NET2.0中,您必须从主体中获取目标方法,调用然后解析IL。我怀疑这不是一项容易的任务

一种选择是在他们针对.NET2.0的System.Core实现中使用Mono表达式树,但仍然使用C3编译器编译。我听过这样的报道,效果很好,但这是一个有点激烈的解决办法