Pregunta

Tengo una referencia de servicio Web .NET a una tercera parte de WSDL.

En esa referencia son 2 clases. Básicamente estas 2 clases son más probables Interfaces en el lado de la API tercera Parte, pero en .NET terminar como 2 clases de proxy.

Tengo una necesidad de combinar estas dos clases en una clase. ¿Por qué? Debido a que es estúpido que éstas se dividen, que son el servicio que me permite hacer llamadas a métodos. Las llamadas a métodos son todos medio dividida y medio entre estas 2 clases de proxy.

Así que quiero crear una clase contenedora personalizada llamada ThirdPartyService y de alguna manera esencialmente heredar ambos miembros de la clase los proxy. Sé que se puede heredar 2 clases en C #, pero no veo cómo hacer esto con una interfaz bien.

¿Fue útil?

Solución

Bueno, no nos has dado mucho que trabajar, pero que podría ser el uso de esta composición.

class Foo {
    public void Frobber();
}

class Bar {
    public void Blorb();
}

Entonces

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(); }
}

Si Foo y Bar implementan las interfaces IFoo y IBar respectivamente, entonces puede tener FooAndBar aplicar IFoo y IBar también.

En el lenguaje de href="http://en.wikipedia.org/wiki/Design_Patterns_(book)" nos llaman a esto el adapter .

En cuanto a su edición:

  
    

Sé que puede heredar 2 clases en C #, pero no veo cómo hacer esto con una interfaz bien.

  

No. No se puede heredar de dos clases en C #. Usted tiene que utilizar la composición como ya he explicado.

Otros consejos

Tal vez añadir algunos valor al mensaje de Jason, este tipo de cosas sería también conocido como adaptador

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top