ITPub博客

首页 > 应用开发 > > 表达式树反射

表达式树反射

作者:54xx 时间:2019-09-19 09:38:59 0 删除 编辑
User u = new User();
            var method = u.GetType().GetMethod("Methods");

            var type1 = method.GetParameters()[0].ParameterType;
            var parameter1 = Expression.Parameter(type1, "pr1");

            var type2 = method.GetParameters()[1].ParameterType;
            var parameter2 = Expression.Parameter(type2, "pr2");

            var callExpression = Expression.Call(Expression.Constant(u), method, new Expression[] { parameter1, parameter2 });

            Expression<Action<string, int>> scall = Expression.Lambda<Action<string, int>>(callExpression, new ParameterExpression[] { parameter1, parameter2 });
            var executeMethods = scall.Compile();
            executeMethods("1", 1);

            u.Methods("ddd", 3);
public class User
    {
        public void Methods(string name,int age)
        {
            Console.WriteLine(name+"-----"+age+s);
        }
    }

这几天学习看了资料 利用表达式树反射?

感觉这样写好麻烦啊?有帮忙优化一下的 或者改进的吗?

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/1976/viewspace-3155739/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-04-16

  • 博文量
    226
  • 访问量
    1611