بسم الله الرحمن الرحيم

من المعروف أنه إذا كان لدينا مكتبة أصناف وكانت تشير إلى مكتبة أخرى في مراجعها لا يمكن أن نجعل المكتبة الثانية تشير إلى الأولى في مراجعها.

لأن هذا سيسبب ظهور رسالة خطأ أن هناك إشارة دائرية Circular Referencing.

فكيف نعمل إن كنا نريد استخدام كل مكتبة في الأخرى ؟

إليك الطريقة :

ليكن لدينا المكتبة AssemblyA.dll و تحوي فئة ClassA

و مكتبة أخرى AssemblyB.dll و تحوي فئة ClassB

ونريد أن نستخدم الكلاس ClassB ضمن الكلاس ClassA و بالعكس أي نريد استخدام ClassA ضمن ClassB

طبعا لا يمكن إشارة كل مكتبة ضمن الاخرى معاً

لهذا نقوم بإنشاء مكتبة جديدة ولنسمها AssemblyC و نعرف فيها إنترفيس Interface مطابق لكل من الأصناف في المكتبتين الأولتين

أي ستحوي المكتبة الأخيرة كل من IClassA و IClassB

الآن نشير إلى هذه المكتبة في كل من المكتبتين الأولتين و نجعل كل صنف يرث الواجهة Interface المقابلة لها

الآن تستطيع استخدام جميع الواجهات في جميع المكتبات

أي الآن يمكنك استخدام IClassB ضمن ClassA و IClassB ضمن ClassA

وبهذا نكون قد ربطنا جميع المكتبات مع بعضها دون الإشارة إلى بعضها البعض.