بسم الله الرحمن الرحيم
من المعروف أنه إذا كان لدينا مكتبة أصناف وكانت تشير إلى مكتبة أخرى في مراجعها لا يمكن أن نجعل المكتبة الثانية تشير إلى الأولى في مراجعها.
لأن هذا سيسبب ظهور رسالة خطأ أن هناك إشارة دائرية Circular Referencing.
فكيف نعمل إن كنا نريد استخدام كل مكتبة في الأخرى ؟
إليك الطريقة :
ليكن لدينا المكتبة AssemblyA.dll و تحوي فئة ClassA
و مكتبة أخرى AssemblyB.dll و تحوي فئة ClassB
ونريد أن نستخدم الكلاس ClassB ضمن الكلاس ClassA و بالعكس أي نريد استخدام ClassA ضمن ClassB
طبعا لا يمكن إشارة كل مكتبة ضمن الاخرى معاً
لهذا نقوم بإنشاء مكتبة جديدة ولنسمها AssemblyC و نعرف فيها إنترفيس Interface مطابق لكل من الأصناف في المكتبتين الأولتين
أي ستحوي المكتبة الأخيرة كل من IClassA و IClassB
الآن نشير إلى هذه المكتبة في كل من المكتبتين الأولتين و نجعل كل صنف يرث الواجهة Interface المقابلة لها
الآن تستطيع استخدام جميع الواجهات في جميع المكتبات
أي الآن يمكنك استخدام IClassB ضمن ClassA و IClassB ضمن ClassA
وبهذا نكون قد ربطنا جميع المكتبات مع بعضها دون الإشارة إلى بعضها البعض.