コード例 #1
0
 internal ExtensionMethodReference(string methodName, Parameter[] parameters, TypeReference[] templateArgs)
 {
     if (methodName == null)
         throw new ArgumentNullException("methodName");
     this.methodName = methodName;
     this.parameters = parameters;
     this.templateArgs = templateArgs;
 }
コード例 #2
0
        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();
            }
        }
コード例 #3
0
        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();

            }
       }
コード例 #4
0
 internal void WriteMethodParameters (Parameter[] parameters, XmlWriter writer) {
     WriteMethodParameters(parameters, writer, null);
 }
コード例 #5
0
        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);
                }
            }

        }
コード例 #6
0
 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());
 }