Esempio n. 1
0
        public Array System__Method__Signature___(string MethodName)
        {
            //TODO: support overloaded methods
            XmlRpcServiceInfo svcInfo = XmlRpcServiceInfo.CreateServiceInfo(
                this.GetType());
            XmlRpcMethodInfo mthdInfo = svcInfo.GetMethod(MethodName);

            if (mthdInfo == null)
            {
                throw new XmlRpcFaultException(880,
                                               "Request for information on unsupported method");
            }
            if (mthdInfo.IsHidden)
            {
                throw new XmlRpcFaultException(881,
                                               "Information not available on this method");
            }
            //XmlRpcTypes.CheckIsXmlRpcMethod(mi);
            ArrayList alist = new ArrayList();

            alist.Add(XmlRpcServiceInfo.GetXmlRpcTypeString(mthdInfo.ReturnType));
            foreach (XmlRpcParameterInfo paramInfo in mthdInfo.Parameters)
            {
                alist.Add(XmlRpcServiceInfo.GetXmlRpcTypeString(paramInfo.Type));
            }
            string[]  types    = (string[])alist.ToArray(typeof(string));
            ArrayList retalist = new ArrayList();

            retalist.Add(types);
            Array retarray = retalist.ToArray(typeof(string[]));

            return(retarray);
        }
Esempio n. 2
0
        public string System__Method__Help___(string MethodName)
        {
            //TODO: support overloaded methods?
            XmlRpcServiceInfo svcInfo = XmlRpcServiceInfo.CreateServiceInfo(
                this.GetType());
            XmlRpcMethodInfo mthdInfo = svcInfo.GetMethod(MethodName);

            if (mthdInfo == null)
            {
                throw new XmlRpcFaultException(880,
                                               "Request for information on unsupported method");
            }
            if (mthdInfo.IsHidden)
            {
                throw new XmlRpcFaultException(881,
                                               "Information not available for this method");
            }
            return(mthdInfo.Doc);
        }
Esempio n. 3
0
        static void WriteMethod(XmlWriter writer, XmlRpcMethodInfo methodInfos)
        {
            writer.WriteStartElement("span");

            writer.WriteStartElement("h2");
            writer.WriteStartElement("a");
            writer.WriteAttributeString("name", $"#{methodInfos.XmlRpcName}");
            writer.WriteString($"method {methodInfos.XmlRpcName}");
            writer.WriteEndElement();
            writer.WriteEndElement();

            if (!string.IsNullOrWhiteSpace(methodInfos.Doc))
            {
                writer.WriteStartElement("p");
                writer.WriteAttributeString("class", "intro");
                writer.WriteString(methodInfos.Doc);
                writer.WriteEndElement();
            }

            writer.WriteStartElement("h3");
            writer.WriteString("Parameters");
            writer.WriteEndElement();

            writer.WriteStartElement("table");
            writer.WriteAttributeString("cellspacing", "0");
            writer.WriteAttributeString("cellpadding", "5");
            writer.WriteAttributeString("width", "90%");

            if (methodInfos.Parameters.Length > 0)
            {
                foreach (var parameterInfo in methodInfos.Parameters)
                {
                    writer.WriteStartElement("tr");
                    writer.WriteStartElement("td");
                    writer.WriteAttributeString("width", "33%");
                    WriteType(writer, parameterInfo.Type, parameterInfo.IsParams);
                    writer.WriteEndElement();

                    writer.WriteStartElement("td");
                    if (string.IsNullOrWhiteSpace(parameterInfo.Doc))
                    {
                        writer.WriteString(parameterInfo.Name);
                    }
                    else
                    {
                        writer.WriteString(parameterInfo.Name);
                        writer.WriteString(" - ");
                        writer.WriteString(parameterInfo.Doc);
                    }
                    writer.WriteEndElement();
                    writer.WriteEndElement();
                }
            }
            else
            {
                writer.WriteStartElement("tr");
                writer.WriteStartElement("td");
                writer.WriteAttributeString("width", "33%");
                writer.WriteString("none");
                writer.WriteEndElement();
                writer.WriteStartElement("td");
                writer.WriteString(" ");
                writer.WriteEndElement();
                writer.WriteEndElement();
            }
            writer.WriteEndElement();

            writer.WriteStartElement("h3");
            writer.WriteString("Return Value");
            writer.WriteEndElement();

            writer.WriteStartElement("table");
            writer.WriteAttributeString("cellspacing", "0");
            writer.WriteAttributeString("cellpadding", "5");
            writer.WriteAttributeString("width", "90%");

            writer.WriteStartElement("tr");

            writer.WriteStartElement("td");
            writer.WriteAttributeString("width", "33%");
            WriteType(writer, methodInfos.ReturnType, false);
            writer.WriteEndElement();

            writer.WriteStartElement("td");
            if (!string.IsNullOrWhiteSpace(methodInfos.ReturnDoc))
            {
                writer.WriteString(methodInfos.ReturnDoc);
            }
            else
            {
                writer.WriteString(string.Empty);
            }
            writer.WriteEndElement();

            writer.WriteEndElement();

            writer.WriteEndElement();

            writer.WriteEndElement();
        }
Esempio n. 4
0
        private static void WriteMethod(
            XmlWriter wrtr,
            XmlRpcMethodInfo mthdInfo,
            ArrayList structs)
        {
            wrtr.WriteStartElement("span");

            wrtr.WriteStartElement("h2");
            wrtr.WriteStartElement("a");
            wrtr.WriteAttributeString("name", "#" + mthdInfo.XmlRpcName);
            wrtr.WriteString("method " + mthdInfo.XmlRpcName);
            wrtr.WriteEndElement();
            wrtr.WriteEndElement();

            if (mthdInfo.Doc != "")
            {
                wrtr.WriteStartElement("p");
                wrtr.WriteAttributeString("class", "intro");
                wrtr.WriteString(mthdInfo.Doc);
                wrtr.WriteEndElement();
            }

            wrtr.WriteStartElement("h3");
            wrtr.WriteString("Parameters");
            wrtr.WriteEndElement();

            wrtr.WriteStartElement("table");
            wrtr.WriteAttributeString("cellspacing", "0");
            wrtr.WriteAttributeString("cellpadding", "5");
            wrtr.WriteAttributeString("width", "90%");

            if (mthdInfo.Parameters.Length > 0)
            {
                foreach (XmlRpcParameterInfo parInfo in mthdInfo.Parameters)
                {
                    wrtr.WriteStartElement("tr");
                    wrtr.WriteStartElement("td");
                    wrtr.WriteAttributeString("width", "33%");
                    WriteType(wrtr, parInfo.Type, parInfo.IsParams, structs);
                    wrtr.WriteEndElement();

                    wrtr.WriteStartElement("td");
                    if (parInfo.Doc == "")
                    {
                        wrtr.WriteString(parInfo.Name);
                    }
                    else
                    {
                        wrtr.WriteString(parInfo.Name);
                        wrtr.WriteString(" - ");
                        wrtr.WriteString(parInfo.Doc);
                    }
                    wrtr.WriteEndElement();
                    wrtr.WriteEndElement();
                }
            }
            else
            {
                wrtr.WriteStartElement("tr");
                wrtr.WriteStartElement("td");
                wrtr.WriteAttributeString("width", "33%");
                wrtr.WriteString("none");
                wrtr.WriteEndElement();
                wrtr.WriteStartElement("td");
                wrtr.WriteString(" ");
                wrtr.WriteEndElement();
                wrtr.WriteEndElement();
            }
            wrtr.WriteEndElement();

            wrtr.WriteStartElement("h3");
            wrtr.WriteString("Return Value");
            wrtr.WriteEndElement();

            wrtr.WriteStartElement("table");
            wrtr.WriteAttributeString("cellspacing", "0");
            wrtr.WriteAttributeString("cellpadding", "5");
            wrtr.WriteAttributeString("width", "90%");

            wrtr.WriteStartElement("tr");

            wrtr.WriteStartElement("td");
            wrtr.WriteAttributeString("width", "33%");
            WriteType(wrtr, mthdInfo.ReturnType, false, structs);
            wrtr.WriteEndElement();

            wrtr.WriteStartElement("td");
            if (mthdInfo.ReturnDoc != "")
            {
                wrtr.WriteString(mthdInfo.ReturnDoc);
            }
            else
            {
                wrtr.WriteString(" ");
            }
            wrtr.WriteEndElement();

            wrtr.WriteEndElement();

            wrtr.WriteEndElement();

            wrtr.WriteEndElement();
        }