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); }
internal Type?FastBindToType(string?assemblyName, string typeName) { Type?type = null; TypeNAssembly?entry = (TypeNAssembly?)_typeCache.GetCachedValue(typeName); if (entry == null || entry.AssemblyName != assemblyName) { // Check early to avoid throwing unnecessary exceptions if (assemblyName == null) { return(null); } Assembly? assm = null; AssemblyName?assmName; try { assmName = new AssemblyName(assemblyName); } catch { return(null); } if (_isSimpleAssembly) { assm = ResolveSimpleAssemblyName(assmName); } else { try { assm = Assembly.Load(assmName); } 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); }
internal Type FastBindToType(string assemblyName, string typeName) { Type typeFromAssembly = null; TypeNAssembly cachedValue = (TypeNAssembly) this.typeCache.GetCachedValue(typeName); if ((cachedValue == null) || (cachedValue.assemblyName != assemblyName)) { Assembly assm = null; if (this.bSimpleAssembly) { try { sfileIOPermission.Assert(); try { assm = ResolveSimpleAssemblyName(new AssemblyName(assemblyName)); } finally { CodeAccessPermission.RevertAssert(); } } catch (Exception) { } if (assm == null) { return null; } GetSimplyNamedTypeFromAssembly(assm, typeName, ref typeFromAssembly); } else { try { sfileIOPermission.Assert(); try { assm = Assembly.Load(assemblyName); } finally { CodeAccessPermission.RevertAssert(); } } catch (Exception) { } if (assm == null) { return null; } typeFromAssembly = FormatterServices.GetTypeFromAssembly(assm, typeName); } if (typeFromAssembly == null) { return null; } CheckTypeForwardedTo(assm, typeFromAssembly.Assembly, typeFromAssembly); cachedValue = new TypeNAssembly { type = typeFromAssembly, assemblyName = assemblyName }; this.typeCache.SetCachedValue(cachedValue); } return cachedValue.type; }
[System.Security.SecurityCritical] // auto-generated 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; if (bSimpleAssembly) { try { sfileIOPermission.Assert(); try { #if FEATURE_FUSION assm = ObjectReader.ResolveSimpleAssemblyName(new AssemblyName(assemblyName)); #else // FEATURE_FUSION Assembly.Load(assemblyName); #endif // FEATURE_FUSION } finally { CodeAccessPermission.RevertAssert(); } } catch(Exception e){ SerTrace.Log( this, "FastBindTypeType ",e.ToString()); } if (assm == null) return null; ObjectReader.GetSimplyNamedTypeFromAssembly(assm, typeName, ref type); } else { try { sfileIOPermission.Assert(); try { assm = Assembly.Load(assemblyName); } finally { CodeAccessPermission.RevertAssert(); } } catch (Exception e) { SerTrace.Log( this, "FastBindTypeType ",e.ToString()); } if (assm == null) return null; type = FormatterServices.GetTypeFromAssembly(assm, typeName); } if ((object)type == null) return null; entry = new TypeNAssembly(); entry.type = type; entry.assemblyName = assemblyName; typeCache.SetCachedValue(entry); } return entry.type; }
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; if (bSimpleAssembly) { assm = Assembly.LoadWithPartialName(assemblyName); } else { try { assm = Assembly.Load(assemblyName); } catch (Exception) { } } if (assm == null) return null; type = FormatterServices.GetTypeFromAssembly(assm, typeName); if (type == null) return null; entry = new TypeNAssembly(); entry.type = type; entry.assemblyName = assemblyName; typeCache.SetCachedValue(entry); } return entry.type; }
internal Type FastBindToType(string assemblyName, string typeName) { Type typeFromAssembly = null; TypeNAssembly cachedValue = (TypeNAssembly)this.typeCache.GetCachedValue(typeName); if ((cachedValue == null) || (cachedValue.assemblyName != assemblyName)) { Assembly assm = null; if (this.bSimpleAssembly) { try { sfileIOPermission.Assert(); try { assm = ResolveSimpleAssemblyName(new AssemblyName(assemblyName)); } finally { CodeAccessPermission.RevertAssert(); } } catch (Exception) { } if (assm == null) { return(null); } GetSimplyNamedTypeFromAssembly(assm, typeName, ref typeFromAssembly); } else { try { sfileIOPermission.Assert(); try { assm = Assembly.Load(assemblyName); } finally { CodeAccessPermission.RevertAssert(); } } catch (Exception) { } if (assm == null) { return(null); } typeFromAssembly = FormatterServices.GetTypeFromAssembly(assm, typeName); } if (typeFromAssembly == null) { return(null); } CheckTypeForwardedTo(assm, typeFromAssembly.Assembly, typeFromAssembly); cachedValue = new TypeNAssembly { type = typeFromAssembly, assemblyName = assemblyName }; this.typeCache.SetCachedValue(cachedValue); } return(cachedValue.type); }
private Type FastBindToType(string assemblyName, string typeName) { Type typeFromAssembly = null; TypeNAssembly cachedValue = (TypeNAssembly)this.typeCache.GetCachedValue(typeName); if ((cachedValue == null) || (cachedValue.AssemblyName != assemblyName)) { if (assemblyName == null) { return(null); } Assembly assm = null; AssemblyName name; try { name = new AssemblyName(assemblyName); } catch { return(null); } if (this.isSimpleAssembly) { assm = ResolveSimpleAssemblyName(name); } else { try { assm = Assembly.Load(name); } catch { } } if (assm == null) { return(null); } if (this.isSimpleAssembly) { GetSimplyNamedTypeFromAssembly(assm, typeName, ref typeFromAssembly); } else { typeFromAssembly = FormatterServices.GetTypeFromAssembly(assm, typeName); } if (typeFromAssembly == null) { return(null); } cachedValue = new TypeNAssembly { Type = typeFromAssembly, AssemblyName = assemblyName }; this.typeCache.SetCachedValue(typeName, cachedValue); } return(cachedValue.Type); }
internal Type FastBindToType(string assemblyName, string typeName) { Type typeFromAssembly = null; TypeNAssembly cachedValue = this.typeCache.GetCachedValue(typeName) as TypeNAssembly; if ((cachedValue == null) || (cachedValue.assemblyName != assemblyName)) { Assembly assem = this.LoadAssemblyFromString(assemblyName); if (assem == null) { return null; } typeFromAssembly = FormatterServices.GetTypeFromAssembly(assem, typeName); if (typeFromAssembly == null) { return null; } cachedValue = new TypeNAssembly { type = typeFromAssembly, assemblyName = assemblyName }; this.typeCache.SetCachedValue(cachedValue); } return cachedValue.type; }
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.GetTypeInfo().Assembly, type); entry = new TypeNAssembly(); entry.Type = type; entry.AssemblyName = assemblyName; _typeCache.SetCachedValue(entry); } return entry.Type; }
internal Type FastBindToType(String assemblyName, String typeName) { Type type = null; TypeNAssembly entry = (TypeNAssembly)typeCache.GetCachedValue(typeName); if (entry == null || entry.assemblyName != assemblyName) { Assembly assm = LoadAssemblyFromString(assemblyName); if (assm == null) return null; type = FormatterServices.GetTypeFromAssembly(assm, typeName); if (type == null) return null; entry = new TypeNAssembly(); entry.type = type; entry.assemblyName = assemblyName; typeCache.SetCachedValue(entry); } return entry.type; }