public async Task <Func <TArgument, TResult> > CompileCsLambdaAsync <TArgument, TResult>(ICsLambda csLambda) { return(await CsLambdaCompiler.CompileCsLambdaAsync <TArgument, TResult>(csLambda)); }
public async Task <Func <TArgument, TResult> > CompileCsLambdaAsync <TArgument, TResult>(ICsLambda csLambda) { var options = ScriptOptions.Default; if (csLambda.Namespaces.Any()) { options = options.AddImports(csLambda.Namespaces); } if (csLambda.Types.Any()) { options = options.AddReferences(csLambda.Types.Select(Type2Assembly)); } options = options.AddReferences(typeof(TArgument).Assembly); options = options.AddReferences(typeof(TResult).Assembly); return(await CSharpScript.EvaluateAsync <Func <TArgument, TResult> >(csLambda.LambdaExpression, options)); }