Ho iniziato con una tana di coniglio Autofac che penso di dover eliminare. Ho un sito .NET MVC in cui un utente può elencare i propri giocatori preferiti per sport (baseball, basket, ecc.). Ho un controller per i giocatori e sto iniettando IPlayerService
. Tuttavia, il mio problema è che il servizio deve sapere con quale sport abbiamo a che fare. Attualmente sto usando i parametri con chiave con un enum di Sports
che sto registrando in Autofac in questo modo:
foreach (var value in Enum.GetValues(typeof(Sports)))
{
var sport = (Sports)value;
builder.RegisterType<PlayerService>()
.Keyed<IPlayerService>(sport)
.WithParameter(new NamedParameter("sport", sport))
.InstancePerLifetimeScope();
}
Anche lo sport deve essere spinto a IPlayerRepository
, che ho registrato quasi esattamente come sopra con IPlayerService.
La mia ultima domanda è, come posso registrare PlayersController
in modo da iniettare correttamente IPlayersService
con lo sport corretto? Supponiamo che il mio percorso assomigli a www.example.com/players/baseball
.
Questo progetto è principalmente per aiutarmi ad avere più esperienza con Autofac, quindi potrebbe essere ovvio che sono essenzialmente un principiante con esso.