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); } } }