Esempio n. 1
0
 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));
 }
Esempio n. 2
0
 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;
             }
         }
     }
 }