未能从表达式中获得强名称

时间:2014-05-20 11:13:10

标签: c# linq lambda expression-trees

我最好用一个例子来解释。

我正在编写一个流畅的界面,其中包含Where方法:

public FluentSearch Where(Expression<Func<IJourney, bool>> expression)

我可以这样称呼:

.Where(j => j.Driver.Chatiness == searchResource.Chatiness)

在调试器中使用手表,我可以看到有一个值为I&#39; m的属性:

expression.Expression.Member.Name

但是,当我从这个属性创建一个手表时,我得到以下内容:

((new System.Linq.Expressions.Expression.MemberExpressionProxy((new System.Linq.Expressions.Expression.MemberExpressionProxy(expression as System.Linq.Expressions.PropertyExpression)).Expression as System.Linq.Expressions.PropertyExpression)).Member).Name

然而,编译器抱怨MemberExpressionProxy的保护级别,以及对构造函数的参数数量的抱怨。

有没有人知道如何解决这个问题并获得字符串中的名称或类型(在这种情况下为IDriver)?

0 个答案:

没有答案