带有泛型的类型类

mar*_*bit 1 .net c# generics

我有这样的方法:

public static void Map<TEntityTrack>() 
Run Code Online (Sandbox Code Playgroud)

在哪里TEntityTrack实施:

public abstract class EntityTrack<TEntity> : EntityTrack, IChangeTrackingService<TEntity>
Run Code Online (Sandbox Code Playgroud)

Map方法内部,我怎么知道TEntityTrack的TEntity类类型?我想不在TEntityMap中指定,因为我想映射我的实现,如:

TrackMap.Map<MyImplOfTrackByEntity>();
Run Code Online (Sandbox Code Playgroud)

可能吗?

Don*_*nut 5

您应该在Map方法上添加第二个类型参数以及适当的类型约束:

public static void Map<TEntityTrack, TEntity>() 
   where TEntityTrack : EntityTrack<TEntity>
{
    var entityType = typeof(TEntity);
}
Run Code Online (Sandbox Code Playgroud)