Sono confuso su come utilizzare il metodo CreatePerOwinContext OWIN. Per quanto posso vedere è un meccanismo di DI povero uomo. Eppure, non riesco a vedere come usarlo.Dovrebbe essere usato esattamente IAppBuilder.CreatePerOwinContext <T>?
Siamo in grado di registrare un tipo/attuazione alla sequenza di avvio come:
app.CreatePerOwinContext<IUserService>(() => {
return new UserService() as IUserService;
});
Allora come facciamo a risolvere a che in seguito. La documentazione dice che può essere recuperato tramite il metodo Get. Ma Get<T>
si aspetta un parametro stringa, che è la chiave per quella voce nell'Identificzione di Enviornment? Come posso conoscere la chiave in questo caso?
IUserService userService = context.Get<IUserService>(???);
Questa risposta mi ha indirizzato nella giusta direzione. Tuttavia, se vuoi prendere l'oggetto con la chiave, dobbiamo prefissare AssemblyQualifiedName con 'AspNet.Identity.Owin:', dando solo il nome di tipo completo non funzionerà – BuddhiP
Non penso che funzioni. Ho controllato le chiavi di proprietà ctx.Environment e sembra che la chiave aggiunta sia un nome di assembly completo cambiando in typeof (ApplicationDbContext). AssemblyQualifiedName. Mi piace come la documentazione di owin non menzioni nulla di tutto ciò. – enorl76