public static MagicType GetCachedType(Type t) { using (TypeCacheLock.Acquire()) { MagicType magicType; if (!TypeCacheTable.TryGetValue(t, out magicType)) { TypeCacheTable[t] = magicType = new MagicType(t); } return(magicType); } }
/// <summary> /// Initializes a new instance of the <see cref="MagicType"/> class. /// </summary> /// <param name="type">The type.</param> public MagicType(Type type) { _type = type; var baseType = type.BaseType; if (baseType != null) { _parent = GetCachedType(baseType); } IndexIndexedProperties(); IndexMappedProperties(); IndexSimpleProperties(); }