@@ -21,6 +21,9 @@ protected ClassMapping CreateClassConverter(Expression source, ClassModel classM
2121 var unmappedDestinationMembers = new List < string > ( ) ;
2222 var properties = new List < MemberMapping > ( ) ;
2323
24+ if ( arg . Settings . IgnoreNonMapped == true )
25+ IgnoreNonMapped ( classModel , arg ) ;
26+
2427 var sources = new List < Expression > { source } ;
2528 sources . AddRange (
2629 arg . Settings . ExtraSources . Select ( src =>
@@ -34,11 +37,7 @@ src is LambdaExpression lambda
3437
3538 var resolvers = arg . Settings . ValueAccessingStrategies . AsEnumerable ( ) ;
3639 if ( arg . Settings . IgnoreNonMapped == true )
37- {
38- arg . Settings . SkipDestinationMemberCheck = true ;
3940 resolvers = resolvers . Where ( ValueAccessingStrategy . CustomResolvers . Contains ) ;
40- }
41-
4241 var getter = ( from fn in resolvers
4342 from src in sources
4443 select fn ( src , destinationMember , arg ) )
@@ -242,6 +241,18 @@ protected virtual ClassModel GetSetterModel(CompileArgument arg)
242241 } ;
243242 }
244243
244+ protected void IgnoreNonMapped ( ClassModel classModel , CompileArgument arg )
245+ {
246+ var notMappingToIgnore = classModel . Members
247+ . ExceptBy ( arg . Settings . Resolvers . Select ( x => x . DestinationMemberName ) ,
248+ y => y . Name ) ;
249+
250+ foreach ( var item in notMappingToIgnore )
251+ {
252+ arg . Settings . Ignore . TryAdd ( item . Name , new IgnoreDictionary . IgnoreItem ( ) ) ;
253+ }
254+ }
255+
245256 #endregion
246257 }
247258}
0 commit comments