C# 无法从GetTypes获取所选类型

C# 无法从GetTypes获取所选类型,c#,reflection,lambda,expression,C#,Reflection,Lambda,Expression,我想初始化以下程序集中使用反射从EntityBase类继承的类 我猜lambda表达式是正确的,但我不知道如何从types2获取这两个类(程序集中有两个类继承了EntityBase) Assembly a = Assembly.LoadFrom("X:\\Workspace\\Operations\\ItemSupplierSetupRequest\\Main\\Source\\ItemSupplierSetupRequest.Entity\\bin\\Debug\\xxxx.ItemSuppl

我想初始化以下程序集中使用反射从
EntityBase
类继承的类

我猜lambda表达式是正确的,但我不知道如何从
types2
获取这两个类(程序集中有两个类继承了
EntityBase

Assembly a = Assembly.LoadFrom("X:\\Workspace\\Operations\\ItemSupplierSetupRequest\\Main\\Source\\ItemSupplierSetupRequest.Entity\\bin\\Debug\\xxxx.ItemSupplierSetupRequest.Entity.dll");
IEnumerable<Type> types2 =
    a.GetTypes().Where(x => x.BaseType.ToString().Equals("xxxx.ItemSupplierSetupRequest.Entity.EntityBase"));

但是不知道如何使用或检查它是否返回这两个类?

您的查询应该可以工作。但是不需要使用
Equals()
或使用字符串比较类型。您可以使用(假设
EntityBase
位于引用的程序集中,且其命名空间位于
中,请使用
):


请记住,这不会返回从EntityBase继承的所有类型,只返回那些直接从EntityBase继承的类型。

您的查询可能会工作。但是不需要使用
Equals()
或使用字符串比较类型。您可以使用(假设
EntityBase
位于引用的程序集中,且其命名空间位于
中,请使用
):


请记住,这不会返回从
EntityBase
继承的所有类型,只返回直接从其继承的类型。

谢谢您的回答-但我不知道如何使用Activator.CreateInstance从IEnumerable types2或我尝试的var result实例化对象?有线索吗?此外,我不知道如何检查查询是否返回正确的结果——当然,我无法调试lambda表达式。非常感谢。如果你还有其他问题,那么再问另一个问题,这样将来有同样问题的人也能找到它。您可以调试lambda的结果。在VS调试器中,您可以单击“结果视图”。谢谢您的回答-但我不知道如何使用Activator.CreateInstance来实例化我尝试过的IEnumerable types2或var result中的对象?有线索吗?此外,我不知道如何检查查询是否返回正确的结果——当然,我无法调试lambda表达式。非常感谢。如果你还有其他问题,那么再问另一个问题,这样将来有同样问题的人也能找到它。您可以调试lambda的结果。在VS调试器中,您可以单击“结果视图”。
var result =
    a.GetTypes().Where(x => x.BaseType.FullName.Equals("xxxx.ItemSupplierSetupRequest.Entity.EntityBase"));
a.GetTypes().Where(x => x.BaseType == typeof(EntityBase))