Beispiel #1
0
        private void WriteConstructor(ConstructorTarget constructor, DisplayOptions options, XmlWriter writer)
        {
            WriteType(constructor.ContainingType, options & ~DisplayOptions.ShowContainer, writer);

            if ((options & DisplayOptions.ShowParameters) > 0)
            {
                WriteMethodParameters(constructor.Parameters, writer);
            }
        }
        /// <summary>
        /// Create a member target
        /// </summary>
        /// <param name="api">The node from which to get the target information</param>
        /// <returns>The member target</returns>
        public static MemberTarget CreateMemberTarget(XPathNavigator api)
        {
            string subgroup = (string)api.Evaluate(apiSubgroupExpression);

            MemberTarget target;

            if (subgroup == "method")
            {
                target = CreateMethodTarget(api);
            }
            else
            if (subgroup == "property")
            {
                target = CreatePropertyTarget(api);
            }
            else
            if (subgroup == "constructor")
            {
                target = new ConstructorTarget(CreateParameterList(api));
            }
            else
            if (subgroup == "event")
            {
                target = CreateEventTarget(api);
            }
            else
            {
                target = new MemberTarget();
            }

            target.Name           = (string)api.Evaluate(apiNameExpression);
            target.ContainingType = CreateSimpleTypeReference(api.SelectSingleNode(apiContainingTypeExpression));
            target.OverloadId     = (string)api.Evaluate(apiOverloadIdExpression);

            return(target);
        }
Beispiel #3
0
        private void WriteMemberTarget(MemberTarget target, DisplayOptions options, XmlWriter writer, Dictionary <IndexedTemplateTypeReference, TypeReference> dictionary)
        {
            if (target == null)
            {
                throw new ArgumentNullException("target");
            }

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

            MethodTarget method = target as MethodTarget;

            if ((options & DisplayOptions.ShowContainer) > 0)
            {
                WriteType(target.ContainingType, options & ~DisplayOptions.ShowContainer, writer);

                if (method != null && method.IsConversionOperator)
                {
                    writer.WriteString(" ");
                }
                else
                {
                    WriteSeparator(writer);
                }
            }

            // special logic for writing methods
            if (method != null)
            {
                WriteMethod(method, options, writer, dictionary);
                return;
            }

            // special logic for writing properties
            PropertyTarget property = target as PropertyTarget;

            if (property != null)
            {
                WriteProperty(property, options, writer);
                return;
            }

            // special logic for writing constructors
            ConstructorTarget constructor = target as ConstructorTarget;

            if (constructor != null)
            {
                WriteConstructor(constructor, options, writer);
                return;
            }

            // special logic for writing events
            EventTarget trigger = target as EventTarget;

            if (trigger != null)
            {
                WriteEvent(trigger, writer);
                return;
            }

            // by default, just write name
            writer.WriteString(target.Name);
        }
        /// <summary>
        /// Create a member target
        /// </summary>
        /// <param name="api">The node from which to get the target information</param>
        /// <returns>The member target</returns>
        public static MemberTarget CreateMemberTarget(XPathNavigator api)
        {
            string subgroup = (string)api.Evaluate(apiSubgroupExpression);

            MemberTarget target;

            if(subgroup == "method")
                target = CreateMethodTarget(api);
            else
                if(subgroup == "property")
                    target = CreatePropertyTarget(api);
                else
                    if(subgroup == "constructor")
                        target = new ConstructorTarget(CreateParameterList(api));
                    else
                        if(subgroup == "event")
                            target = CreateEventTarget(api);
                        else
                            target = new MemberTarget();

            target.Name = (string)api.Evaluate(apiNameExpression);
            target.ContainingType = CreateSimpleTypeReference(api.SelectSingleNode(apiContainingTypeExpression));
            target.OverloadId = (string)api.Evaluate(apiOverloadIdExpression);

            return target;
        }
Beispiel #5
0
        private void WriteConstructor(ConstructorTarget constructor, DisplayOptions options, XmlWriter writer)
        {
            WriteType(constructor.ContainingType, options & ~DisplayOptions.ShowContainer, writer);

            if((options & DisplayOptions.ShowParameters) > 0)
                WriteMethodParameters(constructor.Parameters, writer);
        }