C# 如何获取继承的泛型的类型

C# 如何获取继承的泛型的类型,c#,reflection,C#,Reflection,我有以下课程: public abstract class BaseClass{} public class CustomerService : BaseClass<Customer>{} public class ProductService : BaseClass<Product>{} public class UserService : BaseClass<User>{} 公共抽象类基类{} 公共类CustomerService:基类{} 公共类Pro

我有以下课程:

public abstract class BaseClass{}
public class CustomerService : BaseClass<Customer>{}
public class ProductService : BaseClass<Product>{}
public class UserService : BaseClass<User>{}
公共抽象类基类{}
公共类CustomerService:基类{}
公共类ProductService:基类{}
公共类UserService:基类{}
在运行时,我有以下类型:
entity.GetType()
,它将返回泛型类型:
Customer

如果运行时有
Customer
类型,如何获取
CustomerService
的类型 它们都在同一名称空间中。

谢谢

如果您只是在寻找一个直接基类型为相关的
基类的类,您可以使用如下代码:

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

谢谢,我很抱歉没有提及,但基类是抽象的,我不能用它创建一个实例。谢谢,我的坏朋友!我想我错误地否决了你的意见,你能编辑一下你的答案吗?好了,很抱歉,没有人能否决乔恩·斯基特。没有人
var type = serviceTypeDictionary[entityType];