internal Type FastBindToType(string assemblyName, string typeName) { Type type = null; TypeNAssembly entry = (TypeNAssembly)_typeCache.GetCachedValue(typeName); if (entry == null || entry.AssemblyName != assemblyName) { Assembly assm = null; try { assm = Assembly.Load(new AssemblyName(assemblyName)); } catch { } if (assm == null) { return(null); } if (_isSimpleAssembly) { GetSimplyNamedTypeFromAssembly(assm, typeName, ref type); } else { type = FormatterServices.GetTypeFromAssembly(assm, typeName); } if (type == null) { return(null); } // before adding it to cache, let us do the security check CheckTypeForwardedTo(assm, type.Assembly, type); entry = new TypeNAssembly(); entry.Type = type; entry.AssemblyName = assemblyName; _typeCache.SetCachedValue(entry); } return(entry.Type); }