Exemple #1
0
        void AssertMemberRef(MemberRef mRef, MemberRefType type, int id,
                             IReadOnlyList <int> arrayDim = null, IReadOnlyList <TypeParamRef> typeParams = null)
        {
            Assert.AreEqual(mRef.Type, type);
            Assert.AreEqual(mRef.ID, id);
            Assert.That(mRef.ArrayDimensions, Is.EquivalentTo(arrayDim ?? Empty <int> .List));

            Assert.AreEqual(typeParams?.Count ?? 0, mRef.TypeParams.Count);
            for (int i = 0; i < mRef.TypeParams.Count; i++)
            {
                TypeParamRef expRef = typeParams[i];
                TypeParamRef actRef = mRef.TypeParams[i];

                Assert.AreEqual(expRef.TypeParamName, actRef.TypeParamName);
                if (expRef.MemberRef != null)
                {
                    AssertMemberRef(actRef.MemberRef, expRef.MemberRef.Type,
                                    expRef.MemberRef.ID, expRef.MemberRef.ArrayDimensions,
                                    expRef.MemberRef.TypeParams);
                }
                else
                {
                    Assert.IsNull(actRef.MemberRef);
                }
            }
        }
Exemple #2
0
 public override void VisitTypeParamRef(TypeParamRef typeParamRef)
 {
     base.VisitTypeParamRef(typeParamRef);
     if (!string.IsNullOrEmpty(typeParamRef.Name))
         builder.Append(typeParamRef.Name);
 }
Exemple #3
0
        /// <summary>
        /// Reads all supported documentation elements.
        /// </summary>
        private static IEnumerable<Element> ReadContent(XElement xml)
        {
            foreach (var node in xml.Nodes())
            {
                var element = default(Element);
                switch (node.NodeType)
                {
                    case System.Xml.XmlNodeType.Element:
                        var elementNode = (XElement)node;
                        switch (elementNode.Name.LocalName)
                        {
                            case "summary":
                                element = new Summary(ReadContent(elementNode));
                                break;
                            case "remarks":
                                element = new Remarks(ReadContent(elementNode));
                                break;
                            case "example":
                                element = new Example(ReadContent(elementNode));
                                break;
                            case "para":
                                element = new Para(ReadContent(elementNode));
                                break;
                            case "param":
                                element = new Param(FindAttribute(elementNode, "name"), ReadContent(elementNode));
                                break;
                            case "paramref":
                                element = new ParamRef(FindAttribute(elementNode, "name"));
                                break;
                            case "typeparam":
                                element = new TypeParam(FindAttribute(elementNode, "name"), ReadContent(elementNode));
                                break;
                            case "typeparamref":
                                element = new TypeParamRef(FindAttribute(elementNode, "name"));
                                break;
                            case "code":
                                element = new Code(TrimCode(elementNode.Value));
                                break;
                            case "c":
                                element = new C(elementNode.Value);
                                break;
                            case "see":
                                element = new See(FindAttribute(elementNode, "cref"), FindAttribute(elementNode, "langword"), elementNode.Value, ReadContent(elementNode));
                                break;
                            case "seealso":
                                element = new SeeAlso(FindAttribute(elementNode, "cref"), elementNode.Value, ReadContent(elementNode));
                                break;
                            case "list":
                                element = new List(FindAttribute(elementNode, "type"), ReadContent(elementNode));
                                break;
                            case "listheader":
                                element = new ListHeader(ReadContent(elementNode));
                                break;
                            case "term":
                                element = new Term(ReadContent(elementNode));
                                break;
                            case "description":
                                element = new Description(ReadContent(elementNode));
                                break;
                            case "item":
                                element = new Item(ReadContent(elementNode));
                                break;
                            case "exception":
                                element = new Exception(FindAttribute(elementNode, "cref"), ReadContent(elementNode));
                                break;
                            case "value":
                                element = new Value(ReadContent(elementNode));
                                break;
                            case "returns":
                                element = new Returns(ReadContent(elementNode));
                                break;
                            default:
                                element = new UnknownElement(elementNode, ReadContent(elementNode));
                                break;
                        }
                        break;
                    case System.Xml.XmlNodeType.Text:
                        element = new Text(TrimText(((XText)node).Value));
                        break;
                    default:
                        break;
                }

                if (element != null)
                {
                    element.SetLineInfo(xml as IXmlLineInfo);
                    yield return element;
                }
            }
        }
Exemple #4
0
        /// <summary>
        /// See <see cref="Visitor.VisitTypeParamRef"/>.
        /// </summary>
        public override void VisitTypeParamRef(TypeParamRef typeParamRef)
        {
            if (delegates.VisitTypeParamRef != null)
                delegates.VisitTypeParamRef(typeParamRef);

            base.VisitTypeParamRef(typeParamRef);
        }
Exemple #5
0
 /// <summary>
 /// Visits the <c>typeparamref</c> documentation element.
 /// </summary>
 public virtual void VisitTypeParamRef(TypeParamRef typeParamRef)
 {
     VisitElement(typeParamRef);
 }