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.