示例#1
0
        static void MatchMethod(List <IDocumentationMember> members, XmlNode node)
        {
            Identifier member = IdentifierFor.XmlString(node.Attributes["name"].Value);

            for (int i = 0; i < members.Count; i++)
            {
                var reflected = members[i] as ReflectedMethod;
                if (reflected != null && reflected.Match(member))
                {
                    members[i] = new DocumentedMethod(reflected.Name, node, reflected.Method, reflected.TargetType);
                }
            }
        }
示例#2
0
        static void MatchType(List <IDocumentationMember> members, XmlNode node)
        {
            var identifier = IdentifierFor.XmlString(node.Attributes["name"].Value);
            var positionOfUndocumentedType = members.FindIndex(m =>
            {
                var reflected = m as ReflectedType;
                return(reflected != null && reflected.Match(identifier));
            });

            if (positionOfUndocumentedType >= 0)
            {
                members[positionOfUndocumentedType] = new DocumentedType(identifier, node, members[positionOfUndocumentedType].TargetType);
            }
        }
示例#3
0
        public Comment Parse(ICommentParser parser, XmlNode node, bool first, bool last, ParseOptions options)
        {
            IReferencable reference = new NullReference();

            if (node.Attributes["cref"] == null)
            {
                return(new See(reference));
            }
            var referenceTarget = IdentifierFor.XmlString(node.Attributes["cref"].Value);

            if (referenceTarget is NamespaceIdentifier)
            {
                reference = Namespace.Unresolved((NamespaceIdentifier)referenceTarget);
            }
            else if (referenceTarget is TypeIdentifier)
            {
                reference = DeclaredType.Unresolved((TypeIdentifier)referenceTarget, Namespace.Unresolved(referenceTarget.CloneAsNamespace()));
            }
            else if (referenceTarget is MethodIdentifier)
            {
                reference = Method.Unresolved(
                    (MethodIdentifier)referenceTarget,
                    DeclaredType.Unresolved(
                        referenceTarget.CloneAsType(),
                        Namespace.Unresolved(referenceTarget.CloneAsNamespace())
                        )
                    );
            }
            else if (referenceTarget is PropertyIdentifier)
            {
                reference = Property.Unresolved(
                    (PropertyIdentifier)referenceTarget,
                    DeclaredType.Unresolved(
                        referenceTarget.CloneAsType(),
                        Namespace.Unresolved(referenceTarget.CloneAsNamespace())
                        )
                    );
            }
            else if (referenceTarget is EventIdentifier)
            {
                reference = Event.Unresolved(
                    (EventIdentifier)referenceTarget,
                    DeclaredType.Unresolved(
                        referenceTarget.CloneAsType(),
                        Namespace.Unresolved(referenceTarget.CloneAsNamespace())
                        )
                    );
            }
            else if (referenceTarget is FieldIdentifier)
            {
                reference = Field.Unresolved(
                    (FieldIdentifier)referenceTarget,
                    DeclaredType.Unresolved(
                        referenceTarget.CloneAsType(),
                        Namespace.Unresolved(referenceTarget.CloneAsNamespace())
                        )
                    );
            }

            return(new See(reference));
        }