internal MrType GetTypeFromName(string fullName) { if (_nameToMrType != null && _nameToMrType.TryGetValue(fullName, out var type)) { return(type); } if (IsFakeAssembly) { type = MrType.CreateFakeType(fullName, this); if (_nameToMrType == null) { _nameToMrType = new Dictionary <string, MrType>(); } _nameToMrType[fullName] = type; return(type); } else { // The type isn't in this assembly, but there may be a forwarder for it var forwardingAssembly = GetForwardingAssemblyForType(fullName); if (forwardingAssembly != null) { // Look up the type at that forwarding address return(_loadContext.GetTypeFromAssembly(fullName, forwardingAssembly)); } } throw new Exception("Type not found"); }
internal MrType GetTypeFromName(string fullName) { if (_nameToMrType != null && _nameToMrType.TryGetValue(fullName, out var type)) { return(type); } if (IsFakeAssembly) { type = MrType.CreateFakeType(fullName, this); if (_nameToMrType == null) { _nameToMrType = new Dictionary <string, MrType>(); } _nameToMrType[fullName] = type; return(type); } throw new Exception("Type not found"); }