Example #1
0
 public CommentPart(CommentPart source)
     : base(source)
 {
     _partText = source._partText;
     _partName = source._partName;
     _partType = source._partType;
 }
Example #2
0
 public CommentPart(string partText, string paraName,
                    CommentPartType partType)
 {
     _partText = partText;
     _partName = paraName;
     _partType = partType;
 }
Example #3
0
        /// <summary>
        /// This reads and sets its state or attributes stored in a <c>XML</c> format
        /// with the given reader.
        /// </summary>
        /// <param name="reader">
        /// The reader with which the <c>XML</c> attributes of this object are accessed.
        /// </param>
        /// <exception cref="ArgumentNullException">
        /// If the <paramref name="reader"/> is <see langword="null"/>.
        /// </exception>
        public override void ReadXml(XmlReader reader)
        {
            BuildExceptions.NotNull(reader, "reader");

            Debug.Assert(reader.NodeType == XmlNodeType.Element);
            if (reader.NodeType != XmlNodeType.Element)
            {
                return;
            }

            if (_partType == CommentPartType.None)
            {
                switch (reader.Name.ToLower())
                {
                case "overloads":
                    _partType = CommentPartType.Overloads;
                    break;

                case "summary":
                    _partType = CommentPartType.Summary;
                    break;

                case "remarks":
                    _partType = CommentPartType.Remarks;
                    break;

                case "exception":
                    _partType = CommentPartType.Exception;
                    break;

                case "param":
                    _partType = CommentPartType.Parameter;
                    break;

                case "typeparam":
                    _partType = CommentPartType.TypeParameter;
                    break;

                case "returns":
                    _partType = CommentPartType.Returns;
                    break;

                case "value":
                    _partType = CommentPartType.Value;
                    break;

                case "example":
                    _partType = CommentPartType.Example;
                    break;
                }
                if (_partType == CommentPartType.None)
                {
                    throw new InvalidOperationException();
                }
            }

            if (reader.HasAttributes)
            {
                switch (_partType)
                {
                case CommentPartType.Exception:
                    _partName = reader.GetAttribute("cref");
                    break;

                case CommentPartType.Parameter:
                case CommentPartType.TypeParameter:
                    _partName = reader.GetAttribute("name");
                    break;
                }
            }

            _partText = reader.ReadInnerXml();
        }
Example #4
0
 public CommentPart(string partText, CommentPartType partType)
 {
     _partText = partText;
     _partType = partType;
 }
Example #5
0
        /// <summary>
        /// This reads and sets its state or attributes stored in a <c>XML</c> format
        /// with the given reader.
        /// </summary>
        /// <param name="reader">
        /// The reader with which the <c>XML</c> attributes of this object are accessed.
        /// </param>
        /// <exception cref="ArgumentNullException">
        /// If the <paramref name="reader"/> is <see langword="null"/>.
        /// </exception>
        public override void ReadXml(XmlReader reader)
        {
            BuildExceptions.NotNull(reader, "reader");

            Debug.Assert(reader.NodeType == XmlNodeType.Element);
            if (reader.NodeType != XmlNodeType.Element)
            {
                return;
            }
            if (!String.Equals(reader.Name, TagName,
                               StringComparison.OrdinalIgnoreCase))
            {
                return;
            }

            _name = reader.GetAttribute("name");

            if (reader.IsEmptyElement)
            {
                return;
            }

            if (_listParts == null)
            {
                _listParts = new BuildList <CommentPart>();
            }

            while (reader.Read())
            {
                if (reader.NodeType == XmlNodeType.Element)
                {
                    CommentPartType partType = CommentPartType.None;
                    switch (reader.Name.ToLower())
                    {
                    case "overloads":
                        partType = CommentPartType.Overloads;
                        break;

                    case "summary":
                        partType = CommentPartType.Summary;
                        break;

                    case "remarks":
                        partType = CommentPartType.Remarks;
                        break;

                    case "exception":
                        partType = CommentPartType.Exception;
                        break;

                    case "param":
                        partType = CommentPartType.Parameter;
                        break;

                    case "typeparam":
                        partType = CommentPartType.TypeParameter;
                        break;

                    case "returns":
                        partType = CommentPartType.Returns;
                        break;

                    case "value":
                        partType = CommentPartType.Value;
                        break;

                    case "example":
                        partType = CommentPartType.Example;
                        break;
                    }
                    if (partType == CommentPartType.None)
                    {
                        throw new InvalidOperationException();
                    }

                    CommentPart part = new CommentPart(String.Empty, partType);

                    part.ReadXml(reader);

                    _listParts.Add(part);
                }
                else if (reader.NodeType == XmlNodeType.EndElement)
                {
                    if (String.Equals(reader.Name, CommentItem.TagName,
                                      StringComparison.OrdinalIgnoreCase))
                    {
                        break;
                    }
                }
            }
        }