internal ExtensionMethodReference(string methodName, Parameter[] parameters, TypeReference[] templateArgs) { if (methodName == null) throw new ArgumentNullException("methodName"); this.methodName = methodName; this.parameters = parameters; this.templateArgs = templateArgs; }
private void WriteConversionOperatorParameters(Parameter[] parameters, TypeReference returns, XmlWriter writer, Dictionary<IndexedTemplateTypeReference, TypeReference> dictionary) { if (parameters.Length > 0 || returns != null) writer.WriteString("("); if (parameters.Length > 0) WriteType(parameters[0].Type, DisplayOptions.Default, writer, dictionary); if (parameters.Length > 0 && returns != null) writer.WriteString(" to "); if (returns != null) WriteType(returns, DisplayOptions.Default, writer, dictionary); if (parameters.Length > 0 || returns != null) writer.WriteString(")"); if (parameters.Length == 0 && returns == null) { writer.WriteStartElement("span"); writer.WriteAttributeString("class", "languageSpecificText"); // when there are no parameters, VB shows no parenthesis writer.WriteStartElement("span"); writer.WriteAttributeString("class", "cs"); writer.WriteString("()"); writer.WriteEndElement(); writer.WriteStartElement("span"); writer.WriteAttributeString("class", "cpp"); writer.WriteString("()"); writer.WriteEndElement(); writer.WriteStartElement("span"); writer.WriteAttributeString("class", "nu"); writer.WriteString("()"); writer.WriteEndElement(); writer.WriteStartElement("span"); writer.WriteAttributeString("class", "fs"); writer.WriteString("()"); writer.WriteEndElement(); writer.WriteEndElement(); } }
private void WriteMethodParameters (Parameter[] parameters, XmlWriter writer, Dictionary<IndexedTemplateTypeReference, TypeReference> dictionary) { if (parameters.Length > 0) { writer.WriteString("("); // show parameters // we need to deal with type template substitutions! for (int i = 0; i < parameters.Length; i++) { if (i > 0) writer.WriteString(", "); WriteType(parameters[i].Type, DisplayOptions.Default, writer, dictionary); } writer.WriteString(")"); } else { writer.WriteStartElement("span"); writer.WriteAttributeString("class", "languageSpecificText"); // when there are no parameters, VB shows no parenthesis writer.WriteStartElement("span"); writer.WriteAttributeString("class", "cs"); writer.WriteString("()"); writer.WriteEndElement(); writer.WriteStartElement("span"); writer.WriteAttributeString("class", "cpp"); writer.WriteString("()"); writer.WriteEndElement(); writer.WriteStartElement("span"); writer.WriteAttributeString("class", "nu"); writer.WriteString("()"); writer.WriteEndElement(); writer.WriteStartElement("span"); writer.WriteAttributeString("class", "fs"); writer.WriteString("()"); writer.WriteEndElement(); writer.WriteEndElement(); } }
internal void WriteMethodParameters (Parameter[] parameters, XmlWriter writer) { WriteMethodParameters(parameters, writer, null); }
internal static void WriteSimpleMemberReference (SimpleMemberReference member, DisplayOptions options, XmlWriter writer, LinkTextResolver resolver) { string cer = member.Id; string typeCer, memberName, arguments; DecomposeMemberIdentifier(cer, out typeCer, out memberName, out arguments); if ((options & DisplayOptions.ShowContainer) > 0) { SimpleTypeReference type = CreateSimpleTypeReference(typeCer); WriteSimpleTypeReference(type, options & ~DisplayOptions.ShowContainer, writer); } // change this so that we deal with EII names correctly, too writer.WriteString(memberName); if ((options & DisplayOptions.ShowParameters) > 0) { string[] parameterTypeCers; if (String.IsNullOrEmpty(arguments)) { Parameter[] parameters = new Parameter[0]; resolver.WriteMethodParameters(parameters, writer); } else { parameterTypeCers = SeperateTypes(arguments); Parameter[] parameters = new Parameter[parameterTypeCers.Length]; for (int i = 0; i < parameterTypeCers.Length; i++) { TypeReference parameterType = CreateTypeReference(parameterTypeCers[i]); if (parameterType == null) { parameterType = new NamedTemplateTypeReference("UAT"); } parameters[i] = new Parameter(String.Empty, parameterType); } resolver.WriteMethodParameters(parameters, writer); } } }
private static Parameter[] CreateParameterList (XPathNavigator api) { List<Parameter> parameters = new List<Parameter>(); XPathNodeIterator parameterNodes = api.Select("parameters/parameter"); foreach (XPathNavigator parameterNode in parameterNodes) { string name = parameterNode.GetAttribute("name", String.Empty); XPathNavigator type = parameterNode.SelectSingleNode("*[1]"); Parameter parameter = new Parameter(name, CreateTypeReference(type)); parameters.Add(parameter); } return (parameters.ToArray()); }