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); }
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); }
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(); }
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(); }