Пример #1
0
 public async Task <Func <TArgument, TResult> > CompileCsLambdaAsync <TArgument, TResult>(ICsLambda csLambda)
 {
     return(await CsLambdaCompiler.CompileCsLambdaAsync <TArgument, TResult>(csLambda));
 }
Пример #2
0
    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));
    }