private CompiledMemberTargetConfiguration.CompiledSourceConfiguration CompileMemberSource( CompiledMemberTargetConfiguration.CompiledMemberConfiguration member, MemberTargetConfiguration memberConfiguration) { var source = memberConfiguration.Source ?? new StringProjectionSource(GetSourceMemberNameFromMemberName(member.MemberInfo.Name)); var sourceExpression = GetExpression(source, configuration.It); return(new CompiledMemberTargetConfiguration.CompiledSourceConfiguration() { SourceExpression = sourceExpression, Source = source, SourceKey = memberConfiguration.SourceKey, ValueMap = memberConfiguration.ValueMap, }); }
private CompiledMemberTargetConfiguration.CompiledMemberConfiguration CompileMember(MemberTargetConfiguration memberConfiguration) { var memberInfo = GetMemberInfo(configuration.SourceType, configuration.ProjectedType, memberConfiguration.ProjectedMember); var parameter = memberConfiguration.ProjectionTarget == ProjectionTarget.CtorParameter ? memberConfiguration.CtorParameterName.IsNullOrEmpty() ? GetCtorParameterFromMemberName(memberInfo.Name) : GetCtorParameter(memberConfiguration.CtorParameterName) : null; if (memberConfiguration.ValueMap != null) { //var reverse = configuration.ValueMap.Values.ToLookup(x => x.Value, x => x.Key); } //apply valuemap return(new CompiledMemberTargetConfiguration.CompiledMemberConfiguration() { MemberInfo = memberInfo, MemberType = GetMemberInfoType(memberInfo), CtorParameterName = parameter?.Name, CtorParameterType = parameter?.ParameterType, ProjectionTarget = memberConfiguration.ProjectionTarget }); }
internal ExpressionMemberTargetBuilder(MemberTargetConfiguration configuration) : base(configuration) { }
internal ConfiguredMemberTargetBuilder(MemberTargetConfiguration configuration) { Configuration = configuration; }
internal MemberTargetBuilder(MemberTargetConfiguration configuration) { this.configuration = configuration; }
internal ConstantMemberTargetBuilder(MemberTargetConfiguration configuration) : base(configuration) { }
//TODO: Using specific Ctor internal TMemberTargetBuilder GetMemberTargetBuilder(MemberTargetConfiguration configuration) => (TMemberTargetBuilder)memberTargetBuilderCtor.Invoke(configuration);