private object InvokeFunctionCore(string name, params object[] args) { // check whether this function is allowed to be called PhpCallback callback; if (allFunctionsRegistered) { registeredFunctions.TryGetValue(name, out callback); } else { if (registeredFunctions.TryGetValue(name, out callback)) { PhpException.Throw(PhpError.Warning, String.Format(Resources.HandlerNotAllowed, name)); return(null); } } // if the callback does not already exists, create it if (callback == null) { // parse name int index = name.IndexOf("::"); switch (index) { case -1: callback = new PhpCallback(name); break; case 0: callback = new PhpCallback(name.Substring(2)); break; default: callback = new PhpCallback(name.Substring(0, index), name.Substring(index + 2)); break; } if (!callback.Bind()) { return(null); } registeredFunctions[name] = callback; } // convert arguments for (int i = 0; i < args.Length; i++) { args[i] = XsltConvertor.DotNetToPhp(args[i]); } // invoke! return(callback.Invoke(args)); }
public object getParameter(string ns, string name) { return(XsltConvertor.DotNetToPhp(xsltArgumentList.GetParam(name, ns))); }