سؤال

لقد حصلت على مرجع خدمة ويب .NET إلى الطرف WSDL 3RD.

في هذه المرجع هي 2 فصول. أساسا هذه الفصولتين هي على الأرجح واجهات على الجانب الآخر على الجانب API للحزب الثالث ولكن في نهاية .NET حتى فئات وكيل 2.

لدي حاجة إلى الجمع بين كل من هذه الفئات في فئة واحدة. لماذا ا؟ لأنه غبي أن هذه تقسيم، إنها الخدمة التي تسمح لي بإجراء مكالمات طريقة. يتم تقسيم جميع مكالمات الأسلوب النصف والنصف بين هذه الفئات الوكيلتين.

لذلك أريد إنشاء فئة غلاف مخصصة تسمى ThirdPartyService وراث ما في الأساس إلى حد ما أعضاء الفصل الوكيل. أعلم أنك تستطيع أن ترث دروسين في C # لكنني لا أرى كيفية القيام بذلك بواجهة إما.

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

المحلول

حسنا، لم تعطينا الكثير للعمل معه، ولكن يمكنك القيام بذلك باستخدام التركيب.

class Foo {
    public void Frobber();
}

class Bar {
    public void Blorb();
}

ثم

class FooAndBar {
    Foo _foo;
    Bar _bar;
    public FooAndBar(Foo foo, Bar bar) {
        _foo = foo;
        _bar = bar;
    }

    public void Frobber() { _foo.Frobber(); }
    public void Blorb() { _bar.Blorb(); }
}

إذا Foo و Bar تنفيذ واجهات IFoo و IBar على التوالي بعد ذلك يمكنك الحصول FooAndBar ينفذ IFoo و IBar جدا.

بلغة أنماط التصميم سوف نسمي هذا نمط محول.

فيما يتعلق تحرير الخاص بك:

أعلم أنك تستطيع أن ترث دروسين في C # لكنني لا أرى كيفية القيام بذلك بواجهة إما.

لا. لا يمكنك أن ترث من فئتين في ج #. يجب عليك استخدام التركيب كأنني أوضحت بالفعل.

نصائح أخرى

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

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