private static Inline ParseInline(AssemblyDef assembly, XmlCodeElement element, ParsingSession session) { TraceHelper.WriteLine("parsing-inline: e({0})", element.Element.ToString()); switch (element.Element) { // Invalid elements case XmlCodeElements.Code: case XmlCodeElements.Example: case XmlCodeElements.Exception: case XmlCodeElements.List: case XmlCodeElements.ListHeader: case XmlCodeElements.ListItem: case XmlCodeElements.Include: case XmlCodeElements.Para: case XmlCodeElements.Param: case XmlCodeElements.Permission: case XmlCodeElements.Remarks: case XmlCodeElements.Returns: case XmlCodeElements.Summary: case XmlCodeElements.TypeParam: case XmlCodeElements.Value: InvalidOperationException ex = new InvalidOperationException( "Found a block level element where an inline element was expected." ); ex.Data["element"] = element; throw ex; case XmlCodeElements.B: return(new Bold(new Run(element.Text))); case XmlCodeElements.C: return(new C(element.Text)); case XmlCodeElements.I: return(new Italic(new Run(element.Text))); case XmlCodeElements.ParamRef: return(new Italic(new Run(element.Text))); case XmlCodeElements.See: SeeXmlCodeElement seeElement = element as SeeXmlCodeElement; string displayName; CrefEntryKey key; if (Parser.ResolveMember(seeElement.Text, seeElement.Member, assembly, out key, out displayName)) { return(new See(key, displayName)); } else { return(new Run(displayName)); } case XmlCodeElements.SeeAlso: SeeAlsoXmlCodeElement seeAlsoElement = element as SeeAlsoXmlCodeElement; // key and displayname defined in see if (Parser.ResolveMember(seeAlsoElement.Text, seeAlsoElement.Member, assembly, out key, out displayName)) { return(new SeeAlso(key, displayName)); } else { return(new SeeAlso(displayName)); } case XmlCodeElements.Text: return(new Run(element.Text)); case XmlCodeElements.TypeParamRef: return(new Italic(new Run(element.Text))); } throw new Exception("Unknown inline parsing error."); }
/// <summary> /// Initialises a new instance of the SeeXmlElementRenderer class. /// </summary> /// <param name="associatedEntry"></param> /// <param name="element"></param> public SeeXmlElementRenderer(Entry associatedEntry, SeeXmlCodeElement element) { AssociatedEntry = associatedEntry; _element = element; }