Frage

I den Wortlaut des Titels kann völlig falsch, aber im Grunde genommen, ich habe die folgende Basisklasse:

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

Die Umsetzung dieser ist so etwas wie:

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

Im Grunde, was ich brauche, ist in meiner Basisklasse ScheduleableService, in der Lage sein Halt des MyScheduledService Typ- zu bekommen Gibt es eine Möglichkeit, dies zu tun, ohne sie im Vorbeigehen.

Die folgenden Werke, jedoch ist hässlich .....

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

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

Umsetzung:

public class MyScheduledService: ScheduleableService<MyScheduledJob,
                                                     MyScheduledService>
{
    //MyScheduledJob implements IJob
}
War es hilfreich?

Lösung

this.GetType() oder ich etwas fehlt?

Andere Tipps

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

Aber warum würden Sie brauchen, um dies zu tun? Er weist möglicherweise auf einen Mangel in Ihrem Design. Die Basisklasse sollte nie etwas von abgeleiteten Typen wissen müssen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top