2012-03-05 17 views
5

Come posso scrivere un servizio Web WCF con un singolo endpoint ma più contratti di assistenza?Endpoint singolo con più contratti di servizio

Esempio:

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

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

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

Consente la pensa come IInternetService è il mio servizio ragnatele principale e Voglio realizzare IwiredService e IWirelessService in essa, ma voglio fare attuazione nei loro classes.Is possibile? Come posso risolvere questo problema?

+1

Hai visto questa domanda? Penso che abbia la risposta per quello che stai cercando di fare ... [collegamento] (http://stackoverflow.com/questions/334472/run-wcf-servicehost-with-multiple-contracts) –

+0

Grazie, questo è in realtà ciò che di cui ho bisogno. – svlytns

risposta

3

Ho dato l'esempio seguente è quello che stavi cercando?

[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

Dal link "http://stackoverflow.com/questions/334472/run-wcf-servicehost-with-multiple-contracts" ottengo la soluzione. Classi effettivamente parziali aiutano me. Grazie per l'aiuto. – svlytns

Problemi correlati