سؤال

أرغب في إنشاء تطبيق طلاء بسيط للغاية باستخدام MAF على WPF.

الإضافة الإضافية التي أود إنشاؤها هي:

  1. معالج الصور الرئيسي - أظهر الطلاء الحالي واستلام المدخلات من المستخدم
  2. مربع الأدوات - يمكن للمستخدم تحديد بعض أنواع أدوات الرسومات
  3. الطبقات - يمكن للمستخدم تحديد الطبقات لعرض الطبقات وحذفها وتحديد الطبقة التي تعمل عليها

والسؤال هو: كيف يمكنني التفاعل بين الإضافات المختلفة دون استخدام المضيف؟

شكرا يا روني

هل كانت مفيدة؟

المحلول

الطريقة التي أقوم بها هي أن يقوم المضيف بجمع كل وظيفة إضافية في مجموعة مع اكتشافها ، ثم تمرير هذه المجموعة إلى كل وظيفة إضافية أثناء تهيئتها. ما تنتقل إليه الإضافات الإضافية هو الواجهات الإضافية الأخرى ، حيث أن كل المضيف يعرفها حقًا.

يجب على المضيف تهيئة كل وظيفة إضافية ، وبعد ذلك بمجرد تهيئة جميعها ، يشير إلى تنشيطها ، حيث يكتشفون بعد ذلك الإضافات الأخرى والذهاب للقيام بعملهم. يجب أن تعرض كل وظيفة إضافية طريقة WhoAreyou حتى يتمكنوا من معرفة من يتم تثبيته عند تنشيطه. سيؤدي استخلاص الوظائف الإضافية الخاصة بك من فئة أساسية بتبسيط هذا. بمجرد أن تكتشفها لشخص واحد ثم يتم ذلك من أجلهم جميعًا.

يستخدم هذا النهج فقط المضيف لجمع وتوزيع واجهات الوظيفة الإضافية ، مع التواصل الإضافي مباشرة مع بعضها البعض من خلال خط أنابيب العقد بدلاً من توجيه الرسائل عبر المضيف.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top