我可能完全错误地标题,但基本上,我有以下基类:
public class ScheduleableService<T> : ServiceBase
where T : IJob
{
var x = typeof(T);
}
这的实现类似于:
public class MyScheduledService: ScheduleableService<MyScheduledJob>
{
//MyScheduledJob implements IJob
}
基本上,我需要的是,在我的基类ScheduleableService中,能够获得MyScheduledService类型 - 有没有什么方法可以做到这一点而不传递它。
以下作品很难看......
public class ScheduleableService<T, S> : ServiceBase
where T : IJob
where S : ServiceBase
{
var x = typeof(T);
var y = typeof(S);
}
实现:
public class MyScheduledService: ScheduleableService<MyScheduledJob,
MyScheduledService>
{
//MyScheduledJob implements IJob
}
答案 0 :(得分:11)
this.GetType()
或者我遗失了什么?
答案 1 :(得分:0)
MyScheduledService svc = this as MyScheduledService;
if (svc != null)
{
// it is a MyScheduledService, and you can work with svc
}
但你为什么要这样做呢?它可能表明您的设计存在缺陷。基类应该永远不需要知道有关派生类型的任何信息。