احصل على النوع المنفذ من فئة قاعدة عامة
-
21-09-2019 - |
سؤال
قد قمت بصياغة العنوان بشكل خاطئ تمامًا ، لكن في الأساس ، لدي الفئة الأساسية التالية:
public class ScheduleableService<T> : ServiceBase
where T : IJob
{
var x = typeof(T);
}
تنفيذ هذا شيء مثل:
public class MyScheduledService: ScheduleableService<MyScheduledJob>
{
//MyScheduledJob implements IJob
}
في الأساس ، ما أحتاجه ، هو في جدولي من الفصول الأساسية ، لتكون قادرًا على الحصول على نوع 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
}
المحلول
this.GetType()
أو أفتقد شيئًا؟
نصائح أخرى
MyScheduledService svc = this as MyScheduledService;
if (svc != null)
{
// it is a MyScheduledService, and you can work with svc
}
ولكن لماذا تحتاج إلى القيام بذلك؟ ربما يشير إلى نقص في التصميم الخاص بك. يجب ألا تحتاج الفصل الأساسي أبدًا إلى معرفة أي شيء عن الأنواع المشتقة.
لا تنتمي إلى StackOverflow