Example #1
0
 /// <summary>
 /// 在指定程序集中查找指定基类的子类
 /// </summary>
 /// <param name="asm">指定程序集</param>
 /// <param name="baseType">基类或接口,为空时返回所有类型</param>
 /// <returns></returns>
 public virtual IEnumerable <Type> GetSubclasses(Assembly asm, Type baseType)
 {
     return(AssemblyX.Create(asm).FindPlugins(baseType));
 }
Example #2
0
 /// <summary>
 /// 在所有程序集中查找指定基类或接口的子类实现
 /// </summary>
 /// <param name="baseType">基类或接口</param>
 /// <param name="isLoadAssembly">是否加载为加载程序集</param>
 /// <returns></returns>
 public virtual IEnumerable <Type> GetAllSubclasses(Type baseType, bool isLoadAssembly)
 {
     return(AssemblyX.FindAllPlugins(baseType, isLoadAssembly));
 }
Example #3
0
 /// <summary>
 /// 根据名称获取类型
 /// </summary>
 /// <param name="typeName">类型名</param>
 /// <param name="isLoadAssembly">是否从未加载程序集中获取类型。使用仅反射的方法检查目标类型,如果存在,则进行常规加载</param>
 /// <returns></returns>
 public virtual Type GetType(string typeName, bool isLoadAssembly) => AssemblyX.GetType(typeName, isLoadAssembly);