internal ConventionContext(MappingContainer container, Type sourceType, Type targetType, MemberMapOptions options) { _container = container; SourceType = sourceType; TargetType = targetType; Options = options; SourceMembers = new MappingMemberCollection(GetMembers(sourceType, true, false)); TargetMembers = new MappingMemberCollection(GetMembers(targetType, false, true)); }
private void Initialize() { if (!_initialized) { lock (_lockObj) { if (!_initialized) { var context = new ConventionContext(_container, typeof(TSource), typeof(TTarget), _options); _container.Conventions.Apply(context); _targetMembers = context.TargetMembers; _memberMappers = new MemberMapperCollection(_container, _options); foreach (var mapping in context.Mappings) { _memberMappers.Set(mapping.TargetMember, mapping.SourceMember, mapping.Converter); } _creator = context.Creator != null ? (IInstanceCreator <TTarget>) new ConventionCreator <TTarget>(context.Creator) : new DefaultCreator <TTarget>(); _initialized = true; } } } }