protected override Type[] CreateInOutParamTypes(Uiml.Param[] parameters, out Hashtable outputPlaceholder) { outputPlaceholder = null; Type[] tparamTypes = new Type[parameters.Length]; int i=0; try { for(i=0; i<parameters.Length; i++) { tparamTypes[i] = Type.GetType(parameters[i].Type); int j = 0; while(tparamTypes[i] == null) tparamTypes[i] = ((Assembly)ExternalLibraries.Instance.Assemblies[j++]).GetType(parameters[i].Type); //also prepare a placeholder when this is an output parameter if(parameters[i].IsOut) { if(outputPlaceholder == null) outputPlaceholder = new Hashtable(); outputPlaceholder.Add(parameters[i].Identifier, null); } } return tparamTypes; } catch(ArgumentOutOfRangeException aore) { Console.WriteLine("Can not resolve type {0} of parameter {1} while calling method {2}",parameters[i].Type ,i , Call.Name); Console.WriteLine("Trying to continue without executing {0}...", Call.Name); throw aore; } }
public Object Execute(Uiml.Rendering.IRenderer renderer) { return Execute(); }