public void AddClassMetadata(ClassMetadata clazz) { Container().SetDirtyInSystemTransaction(this); _classes.Add(clazz); if (clazz.StateUnread()) { _classMetadataByBytes.Put(clazz.i_nameBytes, clazz); } else { _classMetadataByClass.Put(clazz.ClassReflector(), clazz); } RegisterClassMetadataById(clazz); }
public void RefreshClassCache(ClassMetadata clazz, IReflectClass oldReflector) { if (clazz.StateUnread()) { _classMetadataByBytes.Put(clazz.ReadName(_systemTransaction), clazz); } else { if (oldReflector != null) { _classMetadataByClass.Remove(oldReflector); } _classMetadataByClass.Put(clazz.ClassReflector(), clazz); } }
public ClassMetadata ReadClassMetadata(ClassMetadata classMetadata, IReflectClass clazz) { if (classMetadata == null) { throw new ArgumentNullException(); } if (!classMetadata.StateUnread()) { return classMetadata; } _classMetadataCreationDepth++; try { classMetadata.CreateConfigAndConstructor(_classMetadataByBytes, clazz); IReflectClass claxx = classMetadata.ClassReflector(); if (claxx != null) { _classMetadataByClass.Put(claxx, classMetadata); classMetadata.ReadThis(); classMetadata.CheckChanges(); _initClassMetadataOnUp.Add(classMetadata); } } finally { _classMetadataCreationDepth--; } InitClassMetadataOnUp(); return classMetadata; }