/// <summary> /// Similar to <see cref="BuildResolveLambda(IExpressionCompiler, ITarget, IExpressionCompileContext)"/>, except this builds a /// lambda whose type is a strongly-typed delegate instead of object - i.e. Func{ResolveContext, T} /// </summary> /// <param name="compiler"></param> /// <param name="target"></param> /// <param name="context"></param> /// <returns></returns> public static LambdaExpression BuildResolveLambdaStrong(this IExpressionCompiler compiler, ITarget target, IExpressionCompileContext context) { if (compiler == null) { throw new ArgumentNullException(nameof(compiler)); } if (target == null) { throw new ArgumentNullException(nameof(target)); } var expression = compiler.Build(target, context); return(compiler.BuildStrongFactoryLambda(expression, context)); }