2012-03-05 9 views
5

¿Cómo puedo escribir un servicio web WCF que tenga un punto final único pero contrato de servicio múltiple?Punto final único con contratos de servicio múltiple

Ejemplo:

[ServiceContract] 
public interface IWirelessService 
{ 
    [OperationContract] 
    void AddWireless(); 
} 

[ServiceContract] 
public interface IWiredService 
{ 
    [OperationContract] 
    void AddWired(); 
} 

[ServiceContract] 
public interface IInternetService 
{ 
    [OperationContract] 
    void AddInternet(); 
} 

Lets piensan como IInternetService es mi principal servicio telas y quiero poner en práctica IwiredService y IWirelessService en ella, pero lo que quiero hacer en esta aplicación posibles sus classes.Is? ¿Como puedó resolver esté problema?

+1

¿Has visto esta pregunta? Creo que tiene la respuesta para lo que intentas hacer ... [link] (http://stackoverflow.com/questions/334472/run-wcf-servicehost-with-multiple-contracts) –

+0

Gracias, eso es en realidad lo que necesito. – svlytns

Respuesta

3

He dado el ejemplo de abajo es lo que estabas buscando?

[ServiceContract] 
public interface IWirelessService : IInternetService 
{ 
    [OperationContract] 
    Connection AddInternet(); 
} 

[ServiceContract] 
public interface IWiredService : IInternetService 
{ 
    [OperationContract] 
    Connection AddInternet(); 
} 

public class WirelessService : IWirelessService 
{ 
    public Connection AddInternet() 
    { 
    //Get Internet the wireless way 
    } 

} 

public class WiredService : IWiredService 
{ 
    public Connection AddInternet() 
    { 
    //Get Internet the wired way 
    } 
} 

[ServiceContract] 
public interface IInternetService 
{ 
    [OperationContract] 
    Connection AddInternet(); 
} 


[ServiceContract] 
public interface IEnterpriseApplicationService 
{ 
    [OperationContract] 
    void GetDataFromInternet(string url, IInternetService internetService); 
} 
public class InternetProviderService : IEnterpriseApplicationService 
{ 
    public HTMLResponse GetDataFromInternet(string url, IInternetService internetService) 
    { 
     Connection con = internetService.AddInternet(); 
     return con.GetContentFromURL(url); 
    } 
} 
+1

Desde el enlace "http://stackoverflow.com/questions/334472/run-wcf-servicehost-with-multiple-contracts" obtengo la solución. De hecho, las clases parciales me ayudan. Gracias por la ayuda. – svlytns

Cuestiones relacionadas