Exemple #1
0
        private void WriteSpecializedMember(SpecializedMemberReference member, DisplayOptions options, XmlWriter writer)
        {
            if ((options & DisplayOptions.ShowContainer) > 0)
            {
                WriteType(member.SpecializedType, options & ~DisplayOptions.ShowContainer, writer);
                WriteSeparator(writer);
            }

            WriteSimpleMember(member.TemplateMember, options & ~DisplayOptions.ShowContainer, writer,
                              member.SpecializedType.SpecializationDictionary);
        }
Exemple #2
0
        /// <summary>
        /// Write out a member reference
        /// </summary>
        /// <param name="member">The member reference information</param>
        /// <param name="options">The link display options</param>
        /// <param name="writer">The write to which the information is written</param>
        public void WriteMember(MemberReference member, DisplayOptions options, XmlWriter writer)
        {
            if (member == null)
            {
                throw new ArgumentNullException("member");
            }

            if (writer == null)
            {
                throw new ArgumentNullException("writer");
            }

            SimpleMemberReference simple = member as SimpleMemberReference;

            if (simple != null)
            {
                WriteSimpleMember(simple, options, writer);
                return;
            }

            SpecializedMemberReference special = member as SpecializedMemberReference;

            if (special != null)
            {
                WriteSpecializedMember(special, options, writer);
                return;
            }

            SpecializedMemberWithParametersReference ugly = member as SpecializedMemberWithParametersReference;

            if (ugly != null)
            {
                WriteSpecializedMemberWithParameters(ugly, options, writer);
                return;
            }

            throw new InvalidOperationException("Unknown member reference type");
        }
        private void WriteSpecializedMember(SpecializedMemberReference member, DisplayOptions options, XmlWriter writer)
        {
            if((options & DisplayOptions.ShowContainer) > 0)
            {
                WriteType(member.SpecializedType, options & ~DisplayOptions.ShowContainer, writer);
                WriteSeparator(writer);
            }

            WriteSimpleMember(member.TemplateMember, options & ~DisplayOptions.ShowContainer, writer,
                member.SpecializedType.SpecializationDictionary);
        }