public Expression GetExpressionTemplate(string name) { TypeNode exprClass = ((Namespace)cuExprs.Nodes[0]).Types[0]; for (int i = 0; i < exprClass.Members.Count; i++) { Field f = exprClass.Members[i] as Field; if (f != null && f.Name.Name == name) { Duplicator duplicator = new Duplicator(module, null); duplicator.SkipBodies = false; return duplicator.VisitExpression(f.Initializer); } } throw new ArgumentException(string.Format(CultureInfo.CurrentUICulture, "Expression template '{0}' not found", name)); }
Expression Duplicate(Expression e, TypeNode referringType) { Duplicator dup = new Duplicator(this.module, referringType); return dup.VisitExpression(e); }