2

我可能完全错误地用了标题,但基本上,我有以下基类:

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
}
4

2 回答 2

11

this.GetType()或者我错过了什么?

于 2010-02-19T14:13:54.057 回答
0
MyScheduledService svc = this as MyScheduledService;
if (svc != null)
{
    // it is a MyScheduledService, and you can work with svc
}

但是你为什么需要这样做呢?这可能表明您的设计存在缺陷。基类永远不需要了解派生类型的任何信息。

于 2010-02-19T14:23:16.050 回答