Exemplo n.º 1
0
        private ClassMetadata LoadMetadataFromType(Type entityType)
        {
            var classMappingAttr = entityType.GetCustomAttributes(typeof(ClassMappingAttribute), false).SingleOrDefault();
            var typeFactoryAttr  = entityType.GetCustomAttributes(typeof(TypeFactoryAttribute), false).SingleOrDefault();

            var classMetadata = new ClassMetadata();

            if (classMappingAttr != null)
            {
                classMetadata.ClassMapping = Activator.CreateInstance((classMappingAttr as ClassMappingAttribute).Value);

                if (typeFactoryAttr != null)
                {
                    classMetadata.TypeFactory = Activator.CreateInstance((typeFactoryAttr as TypeFactoryAttribute).FactoryType) as ITypeFactory;
                }

                ClassMetadataCache.Add(entityType, classMetadata);
            }

            return(classMetadata);
        }
Exemplo n.º 2
0
        private ClassMetadata GetMetadata(Type entityType)
        {
            var classMetadata = ClassMetadataCache.GetCacheEntry(entityType);

            return(classMetadata != null ? classMetadata : LoadMetadataFromType(entityType));
        }