无法从GetTypes中获取所选类型



我想初始化以下程序集中的类,这些类使用反射从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"));

我也试过

var result =
    a.GetTypes().Where(x => x.BaseType.FullName.Equals("xxxx.ItemSupplierSetupRequest.Entity.EntityBase"));

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

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

a.GetTypes().Where(x => x.BaseType == typeof(EntityBase))

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

相关内容

  • 没有找到相关文章