C# Class ThisMember.Core.CompiledMapGenerator

Inheritance: IMapGenerator
ファイルを表示 Open project: JulianR/ThisMember

Private Properties

Property Type Description
AssignSimpleProperty System.Linq.Expressions.BinaryExpression
BuildComplexTypeMappingExpressions void
BuildEnumerableMappingExpressions void
BuildHierarchicalExpression System.Linq.Expressions.Expression
BuildMemberAssignmentExpressions void
BuildTypeMappingExpressions void
CanAssignSourceElementToDestination bool
CompileExpression System.Delegate
CompiledMapGenerator System
DefineMappingType System.Reflection.Emit.TypeBuilder
FindEnumerableMappingFacts EnumerableMappingFacts
GetConstructorForType System.Linq.Expressions.Expression
GetEnumerableSizeAccessor System.Linq.Expressions.Expression
GetMatchingFuncOverload System.Type
GetParamName string
GetParameterName string
HandleDestinationNullableValueType System.Linq.Expressions.Expression
HandleNullableValueTypes System.Linq.Expressions.Expression
HandleSourceNullableValueType System.Linq.Expressions.Expression
HandleSpecialType System.Linq.Expressions.Expression
HandleStringDestination System.Linq.Expressions.Expression
IsCollectionType bool
IsListType bool
ObtainParameter System.Linq.Expressions.ParameterExpression
ProcessTypeModifierData System.Linq.Expressions.Expression
ProcessTypeModifierData void
ReleaseParameter void
TypeReceivesSpecialTreatment bool
ValidateConversionFunction void

Public Methods

Method Description
CompiledMapGenerator ( IMemberMapper mapper, ThisMember.Core.ProposedMap map, ThisMember.Core.MapperOptions options ) : System
GenerateMappingFunction ( ) : Delegate

Private Methods

Method Description
AssignSimpleProperty ( ProposedMemberMapping member, MemberExpression destination, Expression source, ThisMember.Core.ProposedTypeMapping typeMapping, bool usesConversionFunction ) : BinaryExpression

Assigns an expression that can be pretty much anything to a destination mapping.

BuildComplexTypeMappingExpressions ( System.Linq.Expressions.ParameterExpression source, System.Linq.Expressions.ParameterExpression destination, ThisMember.Core.ProposedTypeMapping complexTypeMapping, List expressions ) : void
BuildEnumerableMappingExpressions ( System.Linq.Expressions.ParameterExpression source, System.Linq.Expressions.ParameterExpression destination, ThisMember.Core.ProposedTypeMapping complexTypeMapping, List expressions ) : void

Generates the loop that maps any IEnumerable type

BuildHierarchicalExpression ( System.Linq.Expressions.ParameterExpression sourceParam, ProposedHierarchicalMapping mapping, Expression expression ) : Expression
BuildMemberAssignmentExpressions ( System.Linq.Expressions.ParameterExpression source, System.Linq.Expressions.ParameterExpression destination, ProposedMemberMapping member, List expressions, ThisMember.Core.ProposedTypeMapping typeMapping, ThisMember.Core.Interfaces.CustomMapping customMapping = null ) : void

Assign source member to a destination mapping, applying any custom mappings in the process.

BuildTypeMappingExpressions ( System.Linq.Expressions.ParameterExpression source, System.Linq.Expressions.ParameterExpression destination, ThisMember.Core.ProposedTypeMapping typeMapping, List expressions, ThisMember.Core.Interfaces.CustomMapping customMapping = null ) : void

Processes a mapping for a type.

CanAssignSourceElementToDestination ( ThisMember.Core.ProposedTypeMapping complexTypeMapping, Type destinationCollectionElementType, Type sourceCollectionElementType ) : bool
CompileExpression ( Type sourceType, Type destinationType, LambdaExpression expression ) : Delegate
CompiledMapGenerator ( ) : System
DefineMappingType ( string name ) : TypeBuilder
FindEnumerableMappingFacts ( System.Linq.Expressions.ParameterExpression source, System.Linq.Expressions.ParameterExpression destination, ThisMember.Core.ProposedTypeMapping complexTypeMapping ) : EnumerableMappingFacts
GetConstructorForType ( Type t, System.Linq.Expressions.ParameterExpression source, System.Linq.Expressions.ParameterExpression destination ) : Expression
GetEnumerableSizeAccessor ( EnumerableMappingFacts facts, Expression accessSourceCollection ) : Expression
GetMatchingFuncOverload ( ThisMember.Core.ProposedMap map ) : Type
GetParamName ( Type t, string purpose ) : string
GetParameterName ( ThisMember.Core.Interfaces.PropertyOrFieldInfo member ) : string
HandleDestinationNullableValueType ( MemberExpression destination, Expression source ) : Expression
HandleNullableValueTypes ( MemberExpression destination, Expression source ) : Expression
HandleSourceNullableValueType ( MemberExpression destination, Expression source ) : Expression
HandleSpecialType ( Type sourceType, Type destinationType, System.Linq.Expressions.ParameterExpression complexSource ) : Expression
HandleStringDestination ( Type sourceType, System.Linq.Expressions.ParameterExpression complexSource ) : Expression
IsCollectionType ( Type sourceMemberPropertyType ) : bool
IsListType ( Type sourceMemberPropertyType ) : bool
ObtainParameter ( Type type, string purpose = null ) : System.Linq.Expressions.ParameterExpression

Gets a reusable parameter for a certain type and with a certain name influenced by purpose. Property obtained must later returned to the cache when done with it by calling ReleaseParameter.

ProcessTypeModifierData ( TypeModifierData data, Expression typeParam ) : Expression
ProcessTypeModifierData ( System.Linq.Expressions.ParameterExpression param, List expressions, MappingSides side ) : void
ReleaseParameter ( System.Linq.Expressions.ParameterExpression param ) : void
TypeReceivesSpecialTreatment ( Type type ) : bool
ValidateConversionFunction ( LambdaExpression conversionFunction, System.Linq.Expressions.ParameterExpression conversionParameter, Expression sourceExpression, Expression destinationExpression ) : void

Method Details

CompiledMapGenerator() public method

public CompiledMapGenerator ( IMemberMapper mapper, ThisMember.Core.ProposedMap map, ThisMember.Core.MapperOptions options ) : System
mapper IMemberMapper
map ThisMember.Core.ProposedMap
options ThisMember.Core.MapperOptions
return System

GenerateMappingFunction() public method

public GenerateMappingFunction ( ) : Delegate
return System.Delegate