예제 #1
0
        /// <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));
        }
예제 #2
0
        /// <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);
        }