我有一个针对第三方WSDL的.NET Web服务参考。
在该引用中有2个类。基本上这两个类很可能是第三方API方面的接口,但在.NET中最终为2个代理类。
我需要将这两个类组合成一个类。为什么?因为这些是分裂的愚蠢,它们是允许我进行方法调用的服务。方法调用在这两个代理类之间分为一半和一半。
所以我想创建一个名为ThirdPartyService的自定义包装类,并以某种方式基本上继承这些代理类的成员。我知道你可以在C#中继承2个类,但是我不知道如何用接口做这个。
答案 0 :(得分:5)
嗯,你没有给我们很多工作,但你可以用作文来做到这一点。
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
太
使用Design Patterns语言,我们称之为adapter pattern。
关于你的编辑:
我知道你可以在C#中继承2个类,但我也看不到如何用接口做这个。
没有。你不能从C#中的两个类继承。你必须使用我已经解释过的构图。
答案 1 :(得分:0)
也许将某些值添加到Jason的帖子中,这种东西也称为adapter