Beispiel #1
0
        private object CompileGenericScript(string scriptText, Type[] genericArguments)
        {
            object cachedGenericScript;

            if (ScriptCache.TryGetCachedScript(scriptText, genericArguments, out cachedGenericScript))
            {
                return(cachedGenericScript);
            }

            Type openGenericScriptType   = GetGenericWrapperOfArity(genericArguments.Count());
            Type closedGenericScriptType = openGenericScriptType.MakeGenericType(genericArguments);

            IRawScript compiledScript = _scriptCompiler.CompileScript(scriptText, genericArguments);

            var genericScript = Activator.CreateInstance(closedGenericScriptType, compiledScript);

            ScriptCache.AddCachedScript(scriptText, genericArguments, genericScript);

            return(genericScript);
        }
 public GenericScriptWrapper(IRawScript script)
 {
     _script = script;
 }