إنشاء فئة أساسية لخدمات Windows
-
29-10-2019 - |
سؤال
في تطبيقنا ، لدينا عدد من خدمات Windows (أكثر من 30) والتي يجب أن تعمل خلف الكواليس لمعالجة البيانات في أوقات معينة على مدار اليوم. كنت أحاول إنشاء فئة BaseService التي يمكنني أن أرثها من ذلك من شأنها تسجيل الدخول إلى قاعدة البيانات الخاصة بنا عند بدء الخدمة أو إيقافها بالإضافة إلى بعض الوظائف الشائعة الأخرى. ومع ذلك ، واجهت مانعًا للعرض في محاولة إنشاء BaseService كـ MustInherit حيث لدينا عدد من خصائص MustOverride. القضية تكمن في: Genacodicetagpre
رمزنا كله في VB (كما يمكنك أن تقول على الأرجح). بالنظر إلى أنها طريقة مشتركة ، لا يمكنني تجاوزها (أي اجعلها MustOverride). بدون هذه الطريقة ، لن يتم تجميع الشفرة ، لكنها لن تعمل حقًا في الفئة الأساسية. الكود في هذه الطريقة هو: Genacodicetagpre
لا يمكن إنشاء BaseService (اسم الفئة الأساسية الخاصة بي) لأنه تم تحديده على أنه MustInherit. وهنا تكمن مشكلتي. لا يمكنني إنشاء هذا في الفئة الأساسية ولا يمكنني تجاوزه في الفئات الموروثة.
المحلول
إليك كيفية حل هذه المشكلة بالضبط: نقوم بتمرير نوع التنفيذ إلى رمز عام مشترك في فئة الخدمة الأساسية ، ثم نسميه من فئة التنفيذ.
هذا هو الرمز من فئة الخدمة الأساسية: Genacodicetagpre
وهذا هو الكود من فئة التنفيذ: Genacodicetagpre