@@ -39,9 +39,20 @@ public class MemberMap
3939 public virtual ValueResolverConfiguration ValueResolverConfig { get => default ; set { } }
4040 public virtual ValueResolverConfiguration ValueConverterConfig { get => default ; set { } }
4141 public virtual IReadOnlyCollection < ValueTransformerConfiguration > ValueTransformers => Array . Empty < ValueTransformerConfiguration > ( ) ;
42- public MemberInfo SourceMember => CustomMapExpression . GetMember ( ) ?? SourceMembers . FirstOrDefault ( ) ;
43- public string GetSourceMemberName ( ) =>
44- ValueConverterConfig ? . GetSourceMemberName ( ) ?? ValueResolverConfig ? . GetSourceMemberName ( ) ?? SourceMember ? . Name ;
42+ public MemberInfo SourceMember => this switch
43+ {
44+ { ValueConverterConfig : ValueResolverConfiguration converter } => converter switch
45+ {
46+ { SourceMember : LambdaExpression sourceExpression } => sourceExpression . GetMember ( ) ,
47+ { SourceMemberName : { } } => null ,
48+ _ => SourceMembers . Length == 1 ? SourceMembers [ 0 ] : null
49+ } ,
50+ { ValueResolverConfig : ValueResolverConfiguration resolver } => resolver . SourceMember ? . GetMember ( ) ,
51+ { CustomMapFunction : { } } => null ,
52+ { CustomMapExpression : LambdaExpression mapFrom } => mapFrom . GetMember ( ) ,
53+ _ => SourceMembers . FirstOrDefault ( ) ,
54+ } ;
55+ public string GetSourceMemberName ( ) => ( ValueConverterConfig ?? ValueResolverConfig ) ? . SourceMemberName ?? SourceMember ? . Name ;
4556 public bool MustUseDestination => UseDestinationValue is true || ! CanBeSet ;
4657 public void MapFrom ( LambdaExpression sourceMember )
4758 {
@@ -94,7 +105,6 @@ public ValueResolverConfiguration(object instance, Type interfaceType)
94105 InterfaceType = interfaceType ;
95106 }
96107 public Type ResolvedType => InterfaceType . GenericTypeArguments . Last ( ) ;
97- public string GetSourceMemberName ( ) => SourceMember == null ? SourceMemberName : SourceMember . GetMember ( ) ? . Name ;
98108 }
99109 public readonly struct ValueTransformerConfiguration
100110 {
0 commit comments