Beispiel #1
0
        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);
            }
        }
Beispiel #2
0
        /// <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();
        }