private IPropertyMapConfiguration GetDestinationMemberConfiguration()

in tools/AutoMapper/Configuration/MappingExpression.cs [561:629]


        private IPropertyMapConfiguration GetDestinationMemberConfiguration(MemberInfo destinationMember) =>
            _memberConfigurations.FirstOrDefault(m => m.DestinationMember == destinationMember);

        public void Configure(TypeMap typeMap)
        {
            foreach (var destProperty in typeMap.DestinationTypeDetails.PublicWriteAccessors)
            {
                var attrs = destProperty.GetCustomAttributes(true);
                if (attrs.Any(x => x is IgnoreMapAttribute))
                {
                    IgnoreDestinationMember(destProperty);
                    var sourceProperty = typeMap.SourceType.GetInheritedMember(destProperty.Name);
                    if (sourceProperty != null)
                    {
                        _reverseMap?.IgnoreDestinationMember(sourceProperty);
                    }
                }
                if (typeMap.Profile.GlobalIgnores.Contains(destProperty.Name) && GetDestinationMemberConfiguration(destProperty) == null)
                {
                    IgnoreDestinationMember(destProperty);
                }
            }

            if (_allMemberOptions != null)
            {
                foreach (var accessor in typeMap.DestinationTypeDetails.PublicReadAccessors.Where(_memberFilter))
                {
                    ForDestinationMember(accessor, _allMemberOptions);
                }
            }

            foreach (var action in TypeMapActions)
            {
                action(typeMap);
            }
            foreach (var memberConfig in _memberConfigurations)
            {
                memberConfig.Configure(typeMap);
            }
            foreach (var memberConfig in _sourceMemberConfigurations)
            {
                memberConfig.Configure(typeMap);
            }
            foreach (var paramConfig in _ctorParamConfigurations)
            {
                paramConfig.Configure(typeMap);
            }
            foreach (var valueTransformer in _valueTransformers)
            {
                typeMap.AddValueTransformation(valueTransformer);
            }

            if (_reverseMap != null)
            {
                ReverseSourceMembers(typeMap);
                foreach(var destProperty in typeMap.GetPropertyMaps().Where(pm => pm.Ignored))
                {
                    _reverseMap.ForSourceMember(destProperty.DestinationProperty.Name, opt => opt.Ignore());
                }
                foreach(var includedDerivedType in typeMap.IncludedDerivedTypes)
                {
                    _reverseMap.Include(includedDerivedType.DestinationType, includedDerivedType.SourceType);
                }
                foreach(var includedBaseType in typeMap.IncludedBaseTypes)
                {
                    _reverseMap.IncludeBase(includedBaseType.DestinationType, includedBaseType.SourceType);
                }
            }
        }