Пример #1
0
        private Expression GetTypeCheckConditionOrNull(IMemberMapperData mapperData)
        {
            var sourceType   = (SourceType == _allSourceTypes) ? typeof(object) : SourceType;
            var contextTypes = new[] { sourceType, TargetType };
            var context      = mapperData.GetAppropriateMappingContext(contextTypes);

            if (!TargetType.IsDerivedFrom(context.TargetType))
            {
                return(null);
            }

            var contextAccess = mapperData.GetAppropriateMappingContextAccess(contextTypes);

            if (contextAccess == mapperData.MappingDataObject)
            {
                return(null);
            }

            var targetAccess        = mapperData.GetTargetAccess(contextAccess, TargetType);
            var targetAccessNotNull = targetAccess.GetIsNotDefaultComparison();

            return(targetAccessNotNull);
        }
Пример #2
0
 public static Expression UseTargetMember(IMemberMapperData mapperData, Expression contextAccess, Type targetType)
 => mapperData.GetTargetAccess(contextAccess, targetType);