阅读背景:

Expression API抛出异常:从范围''引用的'x'类型的变量'x',但它没有定义

来源:互联网 
public class Program
{
    private static void Main()
    {
        ContrivedComparer.Compare<Person>(person => person.Name == "Calvin");
    }
}

public class Person
{
    public string Name { get; set; }
}

public class ContrivedComparer
{
    // this likely looks highly ill-advised out of context but this is contrived.
    public static readonly object comparatePerson = new Person { Name = "Ted" };

    public static void Compare<TComparate>(Expression<Func<TComparate, bool>> predicate) 
    {
        if (predicate.Compile()((TComparate)comparatePerson)) return;

        var expression = (BinaryExpression)predicate.Body;

        var actual = Expression.Lambda(expression.Left).Compile().DynamicInvoke();
        var expected = Expression.Lambda(expression.Right).Compile().DynamicInvoke();
    }
}
public class Program
{
    private static void 



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: