Pregunta

se me permite de redactado el título completamente equivocado, pero básicamente, tengo la siguiente clase base:

public class ScheduleableService<T> : ServiceBase
        where T : IJob
{
        var x = typeof(T);
}

La aplicación de esto es algo como:

public class MyScheduledService: ScheduleableService<MyScheduledJob>
{
    //MyScheduledJob implements IJob
}

Básicamente, lo que necesito, está en mi ScheduleableService clase base, para poder controlar la tipo- MyScheduledService ¿Hay alguna manera de hacer esto sin pasar adentro.

Los siguientes obras, sin embargo es feo .....

public class ScheduleableService<T, S> : ServiceBase
    where T : IJob
    where S : ServiceBase
{

    var x = typeof(T);
    var y = typeof(S);
}

aplicación:

public class MyScheduledService: ScheduleableService<MyScheduledJob,
                                                     MyScheduledService>
{
    //MyScheduledJob implements IJob
}
¿Fue útil?

Solución

this.GetType() o me estoy perdiendo algo?

Otros consejos

MyScheduledService svc = this as MyScheduledService;
if (svc != null)
{
    // it is a MyScheduledService, and you can work with svc
}

Pero ¿por qué se necesita para hacer esto? Es, posiblemente, apunta a una deficiencia en su diseño. La clase base no debe necesitar saber nada acerca de los tipos derivados.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top