Esempio n. 1
0
        public virtual Type CreateProxyType(Type baseType, params Type[] baseInterfaces)
        {
            // Reuse the previous results, if possible
            if (_cache != null && _cache.Contains(baseType, baseInterfaces))
            {
                return(_cache.GetProxyType(baseType, baseInterfaces));
            }

            Type result = CreateUncachedProxyType(baseInterfaces, baseType);

            // Cache the proxy type
            if (result != null && _cache != null)
            {
                _cache.StoreProxyType(result, baseType, baseInterfaces);
            }

            return(result);
        }