/*********************************************************************** * Project: CoreCms * ProjectName: 核心内容管理系统 * Web: https://www.corecms.net * Author: 大灰灰 * Email: jianweie@163.com * CreateTime: 2021/1/31 21:45:10 * Description: 暂无 ***********************************************************************/ using System.Collections.Generic; using System.Linq.Expressions; namespace CoreCms.Net.Model.Entities.Expression { public class ParameterRebinder : ExpressionVisitor { private readonly Dictionary map; public ParameterRebinder(Dictionary map) { this.map = map ?? new Dictionary(); } public static System.Linq.Expressions.Expression ReplaceParameters( Dictionary map, System.Linq.Expressions.Expression exp) { return new ParameterRebinder(map).Visit(exp); } protected override System.Linq.Expressions.Expression VisitParameter(ParameterExpression p) { ParameterExpression replacement; if (map.TryGetValue(p, out replacement)) p = replacement; return base.VisitParameter(p); } } }