2015-09-01 12 views
6

Non sono sicuro di come o dove iniettare le dipendenze in una grana. Dov'è il posto migliore per farlo?Iniezione di dipendenza con Orleans

Se non è possibile, è necessario impostare un contenitore nel metodo WorkerRole.Run e ottenere istanze in base alle proprie esigenze?

+0

Sembra che [DI supporto sia stato aggiunto a Orleans] (https://github.com/dotnet/orleans/issues/669), ma non è ancora in nessuna versione rilasciata. – svick

risposta

7

Esiste un supporto limitato per DI nei grani. Questa funzione è stata promessa per essere consegnata presto, ma come in 1.0.9 - non c'è un'iniezione tradizionale del costruttore.

Finora è possibile utilizzare ServiceLocator (anti-pattern) utilizzando framework di propria scelta (ad esempio, stiamo utilizzando Autofac e CommonServiceLocator per questo) per la risoluzione dei servizi che si desidera chiamare all'interno dell'istanza grano.

Per il test di unità - c'è un costruttore di grano che può essere usato per costruire un'istanza di grano con mock (vedi more details here)

vi inviterei alla Gitter Chat Orleans (come tramite link qui sotto) in cui si può vedere risposte e discussioni attorno ad alcune altre domande scottanti.

10

Dal orleans 1.1.0 rilascio, il team di orleans ha aggiunto "ASP.NET vNext stile Dependency Injection per i cereali", è possibile vedere un esempio di questo in here

anche per vedere come "ASP.NET vNext Dependency Injection" opere vedono here