如何获得继承的泛型类型

性感的MF

我有这些课:

public abstract class BaseClass{}
public class CustomerService : BaseClass<Customer>{}
public class ProductService : BaseClass<Product>{}
public class UserService : BaseClass<User>{}

在运行时,我有以下类型:例如entity.GetType(),它将返回通用类型Customer

CustomerService如果我Customer在运行时类型,如何获取类型
它们都在同一个命名空间中。
谢谢

乔恩·斯基特

如果您只是在寻找一个直接相关的基本类型的类,则BaseClass<T>可以使用如下代码:

var targetBaseType = typeof(BaseClass<>).MakeGenericType(entityType);
var type = typeof(BaseClass<>).Assembly.GetTypes()
                              .Single(t => t.BaseType == targetBaseType);

为了避免每次都进行线性搜索,您可能需要创建一个Dictionary<Type, Type>键,键是实体类型,值是服务类型。您可以使用反射进行设置,也可以手动创建。真的很简单:

var type = serviceTypeDictionary[entityType];

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何获得嵌套的泛型类型

来自分类Dev

如何获得 T 泛型的类型?

来自分类Dev

泛型类型约束与继承

来自分类Dev

继承和泛型类型

来自分类Dev

从C#泛型类型继承到非泛型类型时,如何降低冗长性?

来自分类Dev

如何继承具有不同泛型返回类型的方法

来自分类Dev

泛型类型和继承混乱

来自分类Dev

Java泛型,类型推断,继承?

来自分类Dev

泛型类型和继承混乱

来自分类Dev

继承返回泛型类型的函数

来自分类Dev

Kotlin泛型继承-类型不匹配

来自分类Dev

引用类型中的多继承泛型

来自分类Dev

继承两个泛型类型

来自分类Dev

TypeScript 中的泛型类型继承

来自分类Dev

泛型、继承和类型擦除问题

来自分类Dev

如何继承泛型虚拟方法?

来自分类Dev

如何使泛型类型始终成为泛型类型列表?

来自分类Dev

泛型类型java.util.List继承

来自分类Dev

继承需要构造函数的泛型类型的抽象类

来自分类Dev

使用泛型/继承组合不同类型的命令界面

来自分类Dev

C#中的泛型和继承类型

来自分类Dev

继承需要构造函数的泛型类型的抽象类

来自分类Dev

具有继承的类类型的泛型列表的类

来自分类Dev

泛型类型约束语法与继承语法冲突

来自分类Dev

如何获得对具有指定类型的泛型类的构造函数的引用?

来自分类Dev

如何在注解处理中获得泛型类型的合格类名?

来自分类Dev

如何获得泛型类型作为交换输入主体而不是强制转换?

来自分类Dev

如何获得动态/泛型类型的第一个元素

来自分类Dev

泛型和继承?