Пример #1
0
        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));
        }
Пример #2
0
 public DynamicScriptExecuteResult CheckScript(DynamicScript dynamicScript)
 {
     ArgumentsCheck(dynamicScript);
     PreProcessing(dynamicScript);
     return(BuildDynamicScript(dynamicScript, out string errorMsg) ? DynamicScriptExecuteResult.Success() : DynamicScriptExecuteResult.Error(errorMsg));
 }