Così mi sono bloccato mentre cercavo di far sì che il mio webservice asmx usasse l'iniezione delle dipendenze e usasse un IoC per farlo. Voglio che il mio servizio web sia in grado di utilizzare i miei servizi di livello aziendale interno. Il servizio web deve essere utilizzato da un client esterno da un dominio diverso e verrà principalmente utilizzato per inviare e ricevere informazioni su entità quali Ordini e Clienti.Iniezione delle dipendenze ASMX e IoC
Un esempio potrebbe essere:
public class MyService : System.Web.Services.WebService
{
[WebMethod]
public string HelloWorld()
{
return new MyBusinessService().MyMethod();
}
}
public class MyBusinessService : IMyBusinessService
{
public string MyMethod()
{
return "hello";
}
}
Voglio usare l'iniezione di dipendenza per eliminare la necessità di "Newing" il mio servizio, ma i cant capire un modo per fare questo. Posso farlo funzionare usando l'uomo povero DI, o almeno penso che si chiami "povero uomo".
come questo:
public class MyService : System.Web.Services.WebService
{
private IMyBusinessService _myService;
public MyService(IMyBusinessService myService)
{
_myService = myService;
}
public MyService() : this(new MyBusinessServie()) { }
[WebMethod]
public string HelloWorld()
{
return _myService.MyMethod();
}
}
Ma io semplicemente non posso ottenere la mia testa intorno a come utilizzare un contenitore CIO per iniettare le mie dipendenze perché i cant ottenere il servizio per l'esecuzione senza un costruttore senza parametri. Si prega di essere gentile, non sono un programmatore esperto e ho appena iniziato a testare l'iniezione di dipendenze e ho funzionato correttamente sulla mia applicazione di moduli Windows con structuremap ma sono rimasto bloccato su questo.