Unità Dipendenza ho scaricato questo campione in cui posso provare le caratteristiche di Identity Provider in ASP.NET MVC 5:Identity Provider e iniezione
http://www.nuget.org/packages/Microsoft.AspNet.Identity.Samples
che ho usato molte volte Unità DI per i miei repository , servizi, unità di lavoro e altre cose senza problemi.
Ma ora, quando installo Unity DI, ho molti problemi con le interfacce e il DI che utilizza il provider di identità.
Ho appena scaricato il codice dell'esempio e ho configurato l'Unity DI, ma non voglio usare Unity per l'Identity Membership, voglio usare Unity DI solo per me roba (IRepository, IService, IUnitOfWork, ecc)
ho questo errore quando provo a registrare un utente:
Il tipo corrente, Microsoft.AspNet.Identity.IUserStore`1 [Ecoavantis.Interactive.GCI.Models. ApplicationUser], è un'interfaccia e non può essere costruita. Ti manca una mappatura del tipo ?
Ho letto alcuni post in cui mi hanno detto che devo includere qualcosa di simile, ma non ho bisogno di iniettare le dipendenze in Identity Provider ...
container.RegisterType<UserManager<ApplicationUser>>(new HierarchicalLifetimeManager());
container.RegisterType<IUserStore<ApplicationUser>, UserStore<ApplicationUser>>(new HierarchicalLifetimeManager());
Qualcuno mi può aiutare per favore?
Esempio di codice:
/// <summary>Registers the type mappings with the Unity container.</summary>
/// <param name="container">The unity container to configure.</param>
/// <remarks>There is no need to register concrete types such as controllers or API controllers (unless you want to
/// change the defaults), as Unity allows resolving a concrete type even if it was not previously registered.</remarks>
public static void RegisterTypes(IUnityContainer container)
{
// NOTE: To load from web.config uncomment the line below. Make sure to add a Microsoft.Practices.Unity.Configuration to the using statements.
// container.LoadConfiguration();
// TODO: Register your types here
//container.RegisterType<DbContext, ApplicationDbContext>(new ContainerControlledLifetimeManager());
container.RegisterType<IUnitOfWorkAsync, UnitOfWork>(new PerRequestLifetimeManager());
container.RegisterType<IMainPanelService, MainPanelService>();
container.RegisterType(typeof (IRepositoryAsync<>), typeof (Repository<>));
container.RegisterType<IDataContextAsync, ecoavantisinteractivegciContext>(new PerRequestLifetimeManager());
}
Che aspetto ha la classe ApplicationUser? Sta dicendo che è usato come una classe quando è un'interfaccia. Se stai usando un'interfaccia per l'utente dell'applicazione, hai provato a configurare DI per quell'interfaccia e l'implementazione di essa? – grimurd
Sì, ho provato, ma non funziona ... Ho alcune domande simili: http://stackoverflow.com/questions/24731426/register-iauthenticationmanager-with-unity – chemitaxis