/// <summary> /// 現在ロードされているすべてのアセンブリから name という名の型を探して返す /// </summary> /// <param name="name"></param> /// <returns></returns> public static Type GetType(List <Assembly> assemblies, string name) { if (AvailableTypes.ContainsKey(name)) { return(AvailableTypes[name]); } return(AvailableTypes[name] = Type.GetType(name) ?? assemblies.Select(asm => asm.GetType(name)).FirstOrDefault(t => t != null)); }
/// <summary> /// 現在ロードされているすべてのアセンブリから name という名の型を探して返す /// </summary> /// <param name="name"></param> /// <returns></returns> public static Type GetType(string name) { if (AvailableTypes.ContainsKey(name)) { return(AvailableTypes[name]); } Type type = Type.GetType(name); if (type == null) // ロードされているすべてのアセンブリから探す { type = System.AppDomain.CurrentDomain.GetAssemblies().Select( asm => asm.GetType(name)).FirstOrDefault(t => t != null); } return(AvailableTypes[name] = type); }