加入2个课程 - 基本上

Pos*_*Guy 2 c# oop design-patterns adapter wrapper

我有一个针对第三方WSDL的.NET Web服务参考.

在该引用中有2个类.基本上这两个类很可能是第三方API方面的接口,但在.NET中最终为2个代理类.

我需要将这两个类组合成一个类.为什么?因为这些是分裂的愚蠢,它们是允许我进行方法调用的服务.方法调用在这两个代理类之间分为一半和一半.

所以我想创建一个名为ThirdPartyService的自定义包装器类,并以某种方式基本上继承这些代理类的成员.我知道你可以在C#中继承2个类,但是我也看不到如何用接口做这个.

jas*_*son 5

好吧,你没有给我们很多工作,但你可以用组合做到这一点.

class Foo {
    public void Frobber();
}

class Bar {
    public void Blorb();
}
Run Code Online (Sandbox Code Playgroud)

然后

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(); }
}
Run Code Online (Sandbox Code Playgroud)

如果Foo并且分别Bar实现接口IFoo,IBar那么你也可以FooAndBar实现IFooIBar.

Design Patterns的语言中,我们称之为适配器模式.

关于你的编辑:

我知道你可以在C#中继承2个类,但是我也看不到如何用接口做这个.

不可以.你不能从C#中的两个类继承.你必须使用我已经解释过的构图.