Пример #1
0
        public static void AcceptVisitor <TResult> (
            this PropertyDefinition propertyDefinition,
            MetadataVisitor <TResult> visitor)
        {
            if (!visitor.ShouldTraverseInto(visitor.VisitPropertyDefinition(propertyDefinition)))
            {
                return;
            }

            if (propertyDefinition.HasCustomAttributes)
            {
                propertyDefinition.CustomAttributes.AcceptVisitor(visitor);
            }

            propertyDefinition.PropertyType.AcceptVisitor(visitor);
            propertyDefinition.GetMethod?.AcceptVisitor(visitor);
            propertyDefinition.SetMethod?.AcceptVisitor(visitor);

            if (propertyDefinition.HasParameters)
            {
                foreach (var parameter in propertyDefinition.Parameters)
                {
                    parameter.AcceptVisitor(visitor);
                }
            }
        }