private static PropertyTarget CreatePropertyTarget(XPathNavigator api) { PropertyTarget target = new PropertyTarget(CreateParameterList(api), CreateReturnType(api)); if ((bool)api.Evaluate(apiIsExplicitImplementationExpression)) { target.ExplicitlyImplements = CreateMemberReference(api.SelectSingleNode(apiImplementedMembersExpression)); } return(target); }
private void WriteMemberTarget(MemberTarget target, DisplayOptions options, XmlWriter writer, Dictionary <IndexedTemplateTypeReference, TypeReference> dictionary) { if (target == null) { throw new ArgumentNullException("target"); } if (writer == null) { throw new ArgumentNullException("writer"); } MethodTarget method = target as MethodTarget; if ((options & DisplayOptions.ShowContainer) > 0) { WriteType(target.ContainingType, options & ~DisplayOptions.ShowContainer, writer); if (method != null && method.IsConversionOperator) { writer.WriteString(" "); } else { WriteSeparator(writer); } } // special logic for writing methods if (method != null) { WriteMethod(method, options, writer, dictionary); return; } // special logic for writing properties PropertyTarget property = target as PropertyTarget; if (property != null) { WriteProperty(property, options, writer); return; } // special logic for writing constructors ConstructorTarget constructor = target as ConstructorTarget; if (constructor != null) { WriteConstructor(constructor, options, writer); return; } // special logic for writing events EventTarget trigger = target as EventTarget; if (trigger != null) { WriteEvent(trigger, writer); return; } // by default, just write name writer.WriteString(target.Name); }
private void WriteProperty(PropertyTarget target, DisplayOptions options, XmlWriter writer) { WriteProcedureName(target, writer); if ((options & DisplayOptions.ShowParameters) > 0) { IList <Parameter> parameters = target.Parameters; if (parameters.Count > 0) { writer.WriteStartElement("span"); writer.WriteAttributeString("class", "languageSpecificText"); writer.WriteStartElement("span"); writer.WriteAttributeString("class", "cs"); writer.WriteString("["); writer.WriteEndElement(); writer.WriteStartElement("span"); writer.WriteAttributeString("class", "vb"); 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(); // show parameters // we need to deal with type template substitutions! for (int i = 0; i < parameters.Count; i++) { if (i > 0) { writer.WriteString(", "); } WriteType(parameters[i].ParameterType, DisplayOptions.Default, writer); } writer.WriteStartElement("span"); writer.WriteAttributeString("class", "languageSpecificText"); writer.WriteStartElement("span"); writer.WriteAttributeString("class", "cs"); writer.WriteString("]"); writer.WriteEndElement(); writer.WriteStartElement("span"); writer.WriteAttributeString("class", "vb"); 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 static PropertyTarget CreatePropertyTarget(XPathNavigator api) { PropertyTarget target = new PropertyTarget(CreateParameterList(api), CreateReturnType(api)); if((bool)api.Evaluate(apiIsExplicitImplementationExpression)) target.ExplicitlyImplements = CreateMemberReference(api.SelectSingleNode(apiImplementedMembersExpression)); return target; }
private void WriteProperty(PropertyTarget target, DisplayOptions options, XmlWriter writer) { WriteProcedureName(target, writer); if((options & DisplayOptions.ShowParameters) > 0) { IList<Parameter> parameters = target.Parameters; if(parameters.Count > 0) { writer.WriteStartElement("span"); writer.WriteAttributeString("class", "languageSpecificText"); writer.WriteStartElement("span"); writer.WriteAttributeString("class", "cs"); writer.WriteString("["); writer.WriteEndElement(); writer.WriteStartElement("span"); writer.WriteAttributeString("class", "vb"); 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(); // show parameters // we need to deal with type template substitutions! for(int i = 0; i < parameters.Count; i++) { if(i > 0) writer.WriteString(", "); WriteType(parameters[i].ParameterType, DisplayOptions.Default, writer); } writer.WriteStartElement("span"); writer.WriteAttributeString("class", "languageSpecificText"); writer.WriteStartElement("span"); writer.WriteAttributeString("class", "cs"); writer.WriteString("]"); writer.WriteEndElement(); writer.WriteStartElement("span"); writer.WriteAttributeString("class", "vb"); 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(); } } }