C# 将system.Type转换为用户定义的类型

C# 将system.Type转换为用户定义的类型,c#,.net,system.reflection,C#,.net,System.reflection,我试图让所有的类继承一个基类 public void GetClassNames() { List<BaseClass> data = AppDomain.CurrentDomain.GetAssemblies() .SelectMany(assembly => assembly.GetTypes()) .Where(type => type !

我试图让所有的类继承一个基类

  public void GetClassNames()
  {

     List<BaseClass> data = AppDomain.CurrentDomain.GetAssemblies()
                           .SelectMany(assembly => assembly.GetTypes())
                           .Where(type => type != null && 
                           type.IsSubclassOf(typeof(BaseClass))).ToList();
  }
public void GetClassNames()
{
列表数据=AppDomain.CurrentDomain.GetAssemblys()
.SelectMany(assembly=>assembly.GetTypes())
.Where(type=>type!=null&&
type.IsSubclassOf(typeof(BaseClass)).ToList();
}
但是,上面的代码会抛出一个错误。
“无法将类型
System.Collections.Generic.List'隐式转换为
System.Collections.Generic.List”


如何将其强制转换为类型基类?

您正在选择属于
基类的子类的所有程序集的所有类型。因此,您可以得到所有类型,但不能得到这些类型的实例

你到底想要什么?方法名为
GetClassNames
,因此您可能需要:

public IEnumnerable<string> GetClassNames()
{
    List<string> baseClassNames = AppDomain.CurrentDomain.GetAssemblies()
       .SelectMany(assembly => assembly.GetTypes())
       .Where(type => type?.IsSubclassOf(typeof(BaseClass)) == true)
       .Select(type => type.FullName)
       .ToList();
    return baseClassNames;
}

您正在选择属于
基类的子类的所有程序集的所有类型。因此,您可以得到所有类型,但不能得到这些类型的实例

你到底想要什么?方法名为
GetClassNames
,因此您可能需要:

public IEnumnerable<string> GetClassNames()
{
    List<string> baseClassNames = AppDomain.CurrentDomain.GetAssemblies()
       .SelectMany(assembly => assembly.GetTypes())
       .Where(type => type?.IsSubclassOf(typeof(BaseClass)) == true)
       .Select(type => type.FullName)
       .ToList();
    return baseClassNames;
}

System.Type
是包含类型元数据的类型描述符。它不包含关于所描述类型的任何特定实例的数据。
列表
(是
汇编.GetType()
的结果)是包含此类描述符的列表,而
列表
是包含
基类
(或其子类型)的具体实例的列表。您应该指定您真正想要完成的任务,否则我们只能猜测。
System.Type
是一个类型描述符,它包含有关类型的元数据。它不包含关于所描述类型的任何特定实例的数据。
列表
(是
汇编.GetType()
的结果)是包含此类描述符的列表,而
列表
是包含
基类
(或其子类型)的具体实例的列表。你应该详细说明你真正想要完成什么,否则我们只能猜测。如果我的描述有点误导的话,很抱歉。我想获取从基类型派生的所有类型。如果我的描述有点误导,很抱歉。我希望获得从基类型派生的所有类型。