当我尝试使用Asp.Net Identity RoleStore并使用StructureMap作为DI容器时,UserStore工作正常,但RoleStore会在编译时抛出错误。
library(mapview)
library(raster)
counties <- getData("GADM", country = "USA", level = 2)
mapview(counties)
抛出以下错误
类型 'Microsoft.AspNet.Identity.EntityFramework.RoleStore' 不能在泛型类型中用作类型参数'TConcreteType' 或方法 'StructureMap.Configuration.DSL.Expressions.CreatePluginFamilyExpression.Use()'。 没有隐式引用转换 'Microsoft.AspNet.Identity.EntityFramework.RoleStore' 至 'Microsoft.AspNet.Identity.IRoleStore'。
答案 0 :(得分:3)
因为RoleStore<TRole>
未实现IRoleStore<TRole>
。实际上它是从IRoleStore<TRole, TKey>
实现的。因此请尝试这样做:
cfg.For<IRoleStore<IdentityRole,string>>().Use<RoleStore<IdentityRole>>();