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; }