Domanda

I maggio del formulato il titolo completamente sbagliato, ma in fondo, ho la seguente classe di base:

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

L'implementazione di questo è qualcosa di simile:

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

In sostanza, quello che mi serve, è nella mia classe di base ScheduleableService, per essere in grado di entrare in possesso del tipo- MyScheduledService C'è un modo che io possa fare questo senza passare in.

I seguenti lavori, però è brutto .....

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

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

applicazione:

public class MyScheduledService: ScheduleableService<MyScheduledJob,
                                                     MyScheduledService>
{
    //MyScheduledJob implements IJob
}
È stato utile?

Soluzione

this.GetType() o mi manca qualcosa?

Altri suggerimenti

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

Ma perché avete bisogno di fare questo? E 'forse punta a una carenza nella progettazione. La classe di base dovrebbe mai bisogno di sapere nulla di tipi derivati.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top