private DynamicScriptExecuteResult <T> ExecuteTrustedCode <T>(Type type, MethodInfo methodInfo, params object[] parameters) { object result = null; var parms = methodInfo.GetParameters(); var safeParameters = SafeTypeConvertParameters(methodInfo.Name, parms, parameters); if (methodInfo.IsStatic) { result = type.TryCallMethod(methodInfo.Name, true, parms.Select(t => t.Name).ToArray(), parms.Select(t => t.ParameterType).ToArray(), safeParameters); } else { result = Activator.CreateInstance(type).TryCallMethod(methodInfo.Name, true, parms.Select(t => t.Name).ToArray(), parms.Select(t => t.ParameterType).ToArray(), safeParameters); } return(DynamicScriptExecuteResult <T> .Success(data : (T)result)); }
public DynamicScriptExecuteResult CheckScript(DynamicScript dynamicScript) { ArgumentsCheck(dynamicScript); PreProcessing(dynamicScript); return(BuildDynamicScript(dynamicScript, out string errorMsg) ? DynamicScriptExecuteResult.Success() : DynamicScriptExecuteResult.Error(errorMsg)); }