aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Tango.Scripting/ExpressionGenerator.cs
blob: 8db917a100fb4e423da6becd55cd8ae0add79717 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
using Microsoft.CodeAnalysis.CSharp.Scripting;
using Microsoft.CodeAnalysis.Scripting;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;

namespace Tango.Scripting
{
    public static class ExpressionGenerator
    {
        public static Func<T, bool> GenerateExpression<T>(String body, params Assembly[] assemblies)
        {
            var options = ScriptOptions.Default.AddReferences(assemblies);
            Func<T, bool> func = CSharpScript.EvaluateAsync<Func<T, bool>>(body, options).Result;
            return func;
        }
    }
}