2016-05-16 6 views
0

Wie registriere ich dies mit dem Simple Injector? Zur Zeit habe ich diesen Fehler unterSo registrieren Sie den Asp.net-Identitätsrollen-Manager im einfachen Injektor

Der Konstruktor vom Typ ApplicationRoleManager den Parameter enthält mit dem Namen ‚Store‘ und Typ IRoleStore die nicht registriert ist. Stellen Sie sicher, dass IRoleStore registriert ist, oder ändern Sie den Konstruktor von ApplicationRoleManager.

public class ApplicationRoleManager : RoleManager<IdentityRole> 
    { 

     public ApplicationRoleManager(IRoleStore<IdentityRole, string> store) : base(store) 
     { 
     } 

     public static ApplicationRoleManager Create(IdentityFactoryOptions<ApplicationRoleManager> options, 
      IOwinContext context) 
     { 
      var appRoleManager = new ApplicationRoleManager(new RoleStore<IdentityRole>(context.Get<ApplicationDbContext>())); 
      return appRoleManager; 
     } 
    } 

auf einfachen Injektor ich diesen Code unten, aber immer noch der Fehler

container.RegisterPerWebRequest<RoleManager<IdentityRole,string>,ApplicationRoleManager>(); 
+1

Sie lesen sollten, [diese] (https://simpleinjector.codeplex.com/discussions/564822) gefunden werden kann zuerst. –

+0

Habe es vor einer Weile auch gefunden. – SlowNinja

Antwort

0

Gerade für die Aufzeichnung anhalten, wenn jemand im Fall das gleiche Problem wie ich hat, hier ist das, was ich haben festgestellt, die auch in here

container.Register<ApplicationRoleManager>(Lifestyle.Scoped); 

container.Register<IRoleStore<IdentityRole, string>, RoleStore<IdentityRole>>(
    Lifestyle.Scoped);