Я получаю несколько ошибок компилятора о моих привязках с Ninject
. Это код:Ninject ASP.NET Identity Тип '.....' не может использоваться как параметр типа 'TImplementation' в общем типе или методе
kernel.Bind<IUserStore<ApplicationUserStore>>().To<UserStore<ApplicationUser, ApplicationRole, int, ApplicationUserLogin, ApplicationUserRole, ApplicationUserClaim>>().InRequestScope();
kernel.Bind<IRoleStore<ApplicationRoleStore>>().To<RoleStore<ApplicationRole, int, ApplicationUserRole>>().InRequestScope();
И эти ошибки компилятора:
Ошибка 5 Тип «MyNamespace.Data.ApplicatonRoleStore» не может быть использовано в качестве параметра типа «TRole» в родовом типе или метод «Microsoft.AspNet.Identity.IRoleStore». Нет никакого неявного преобразования ссылок из «MyNamespace.Data.ApplicatonRoleStore» в «Microsoft.AspNet.Identity.IRole».
Ошибка 6 Тип «MyNamespace.Data.ApplicatonRoleStore» не может использоваться как параметр типа «TROL» в универсальном типе или методе «Microsoft.AspNet.Identity.IRoleStore». Нет никакого неявного преобразования ссылок из «MyNamespace.Data.ApplicatonRoleStore» в «Microsoft.AspNet.Identity.IRole».
Ошибка 2 Тип «MyNamespace.Data.ApplicatonUserStore» не может использоваться как параметр типа «TUser» в универсальном типе или методе «Microsoft.AspNet.Identity.IUserStore». Нет никакого неявного преобразования ссылок из «MyNamespace.Data.ApplicatonUserStore» в «Microsoft.AspNet.Identity.IUser».
Ошибка 3 Тип «MyNamespace.Data.ApplicatonUserStore» не может использоваться как параметр типа «TUser» в родовом типе или методе «Microsoft.AspNet.Identity.IUserStore». Нет никакого неявного преобразования ссылок из «MyNamespace.Data.ApplicatonUserStore» в «Microsoft.AspNet.Identity.IUser».
Ошибка 4 Тип «Microsoft.AspNet.Identity.EntityFramework.RoleStore» не может использоваться как параметр типа «TImplementation» в универсальном типе или методе «Ninject.Syntax.IBindingToSyntax.To()». Нет никакого неявного преобразования ссылок из «Microsoft.AspNet.Identity.EntityFramework.RoleStore» в «Microsoft.AspNet.Identity.IRoleStore».
Ошибка 1 Тип «Microsoft.AspNet.Identity.EntityFramework.UserStore» не может использоваться как параметр типа «TImplementation» в универсальном типе или методе «Ninject.Syntax.IBindingToSyntax.To()». Нет никакого неявного преобразования ссылок из «Microsoft.AspNet.Identity.EntityFramework.UserStore» в «Microsoft.AspNet.Identity.IUserStore».
По умолчанию система asp.net-identity
использует указатель для первичного ключа. Я изменил это, чтобы вместо этого использовать ints. Я вижу некоторые ошибки около Microsoft.AspNet.Identity.IRole<string>
.
EDIT: Эти классы:
public class ApplicationRoleStore : RoleStore<ApplicationRole, int, ApplicationUserRole>
{
public ApplicationRoleStore(ApplicationDbContext context)
: base(context)
{ }
}
public class ApplicationUserStore :
UserStore<ApplicationUser, ApplicationRole, int, ApplicationUserLogin, ApplicationUserRole, ApplicationUserClaim>
{
public ApplicationUserStore(ApplicationDbContext context)
: base(context)
{ }
}
Все, кажется, указывает на недостающую реализации интерфейса, как ошибки компилятора сказать, как он пытается преобразовать из вашего конкретного класса к этому интерфейсу , – Alejandro
Похоже, вы выполняете недействительную регистрацию.Можете ли вы показать нам интерфейс и определение класса для целевого объекта? –
Я добавил классы, о которых жалуется компилятор. @alejandro, я не уверен, какой интерфейс мне не хватает, но это все, что есть у пользователя и пользователя. – Quoter