private void WriteSimpleType(SimpleTypeReference simple, ReferenceLinkDisplayOptions options, bool showOuterType, XmlWriter writer) { TypeTarget type = simple.Resolve(_targets) as TypeTarget; if (type != null) { WriteTypeTarget(type, options, showOuterType, writer); } else { ReferenceTextUtilities.WriteSimpleTypeReference(simple, options, writer); } }
private static EnumerationTarget CreateEnumerationTarget(XPathNavigator api, ReferenceLinkType linkType) { EnumerationTarget enumeration = new EnumerationTarget(); string typeId = (string)api.Evaluate(topicIdExpression); string file = (string)api.Evaluate(topicFileExpression); // Create tar List <MemberTarget> members = new List <MemberTarget>(); XPathNodeIterator elementNodes = api.Select("elements/element"); foreach (XPathNavigator elementNode in elementNodes) { string memberId = elementNode.GetAttribute("api", String.Empty); // try to get name from attribute on element node string memberName = elementNode.GetAttribute("name", String.Empty); if (String.IsNullOrEmpty(memberName)) { // if we can't do that, try to get the name by searching the file for the <api> element of that member XPathNavigator memberApi = api.SelectSingleNode(String.Format( "following-sibling::api[@id='{0}']", memberId)); if (memberApi != null) { memberName = (string)memberApi.Evaluate(apiNameExpression); } else { // if all else fails, get the name by parsing the identifier string arguments; string type; ReferenceTextUtilities.DecomposeMemberIdentifier(memberId, out type, out memberName, out arguments); } } MemberTarget member = new MemberTarget(); member.id = memberId; // get Id from element member.file = file; // get file from type file member.type = linkType; member.name = memberName; // get name from element member.containingType = new SimpleTypeReference(typeId); // get containing type from this type members.Add(member); } enumeration.elements = members; return(enumeration); }
private void WriteSimpleMember(SimpleMemberReference member, ReferenceLinkDisplayOptions options, XmlWriter writer, IDictionary <IndexedTemplateTypeReference, TypeReference> dictionary) { MemberTarget target = member.Resolve(_targets) as MemberTarget; if (target != null) { WriteMemberTarget(target, options, writer, dictionary); } else { ReferenceTextUtilities.WriteSimpleMemberReference(member, options, writer, this); //throw new InvalidOperationException(String.Format("Unknown member target '{0}'", member.Id)); } }
public void WriteNamespace(NamespaceReference spaceReference, ReferenceLinkDisplayOptions options, XmlWriter writer) { if (spaceReference == null) { throw new ArgumentNullException("spaceReference"); } if (writer == null) { throw new ArgumentNullException("writer"); } NamespaceTarget spaceTarget = spaceReference.Resolve(_targets) as NamespaceTarget; if (spaceTarget != null) { WriteNamespaceTarget(spaceTarget, options, writer); } else { ReferenceTextUtilities.WriteNamespaceReference(spaceReference, options, writer); } }