private void EnsureCreator() { if (_creator == null) { _creator = MemberReflectionOptimizer.GetCreator(ClassType); } }
private ExtendedPropertiesMap CreateExtendedPropertiesMap(Type classType) { var extPropMember = _profile.FindExtendedPropertiesMember(classType); if (extPropMember == null) { return(null); } return(new ExtendedPropertiesMap( extPropMember.Name, extPropMember.GetReturnType(), MemberReflectionOptimizer.GetGetter(extPropMember), MemberReflectionOptimizer.GetSetter(extPropMember))); }
private PersistentMemberMap CreateMemberMap(Type classType, MemberInfo member) { var memberReturnType = member.GetReturnType(); var dictionaryAdapter = _profile.GetDictionaryAdapter(classType, member, memberReturnType); if (dictionaryAdapter != null) { return(new DictionaryMemberMap( member.Name, MemberReflectionOptimizer.GetGetter(member), MemberReflectionOptimizer.GetSetter(member), _profile.GetAlias(classType, member), _profile.GetPersistDefaultValue(classType, member), dictionaryAdapter)); } var collectionType = _profile.GetCollectionAdapter(classType, member, memberReturnType); if (collectionType != null) { return(new CollectionMemberMap( member.Name, memberReturnType, MemberReflectionOptimizer.GetGetter(member), MemberReflectionOptimizer.GetSetter(member), _profile.GetAlias(classType, member), _profile.GetPersistDefaultValue(classType, member), collectionType, _profile.GetCollectionElementType(classType, member, memberReturnType))); } //TODO: reference checking... return(new PersistentMemberMap( member.Name, memberReturnType, MemberReflectionOptimizer.GetGetter(member), MemberReflectionOptimizer.GetSetter(member), _profile.GetDefaultValue(classType, member), _profile.GetAlias(classType, member), _profile.GetPersistDefaultValue(classType, member))); }
private IdMap CreateIdMap(Type classType) { var idMember = _profile.FindIdMember(classType); if (idMember == null) { return(null); } var memberReturnType = idMember.GetReturnType(); return(new IdMap( idMember.Name, memberReturnType, MemberReflectionOptimizer.GetGetter(idMember), MemberReflectionOptimizer.GetSetter(idMember), _profile.GetIdGenerator(classType, idMember), _profile.GetIdUnsavedValue(classType, idMember))); }