private void WriteProperty (PropertyTarget target, DisplayOptions options, XmlWriter writer) { WriteProcedureName(target, options, writer); if ((options & DisplayOptions.ShowParameters) > 0) { Parameter[] parameters = target.Parameters; // VB only shows parenthesis when there are parameters if (parameters.Length > 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.Length; i++) { if (i > 0) writer.WriteString(", "); WriteType(parameters[i].Type, 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(); target.parameters = CreateParameterList(api); target.returnType = CreateReturnType(api); if ((bool)api.Evaluate(apiIsExplicitImplementationExpression)) { target.explicitlyImplements = CreateMemberReference(api.SelectSingleNode(apiImplementedMembersExpression)); } return (target); }