C# 无法解析类型为'';试图激活'';
我正在Core2.0上创建一个项目,在过去的两天里,我一直在依赖注入上苦苦挣扎。下面是我的代码-C# 无法解析类型为'';试图激活'';,c#,asp.net-core,asp.net-core-2.0,C#,Asp.net Core,Asp.net Core 2.0,我正在Core2.0上创建一个项目,在过去的两天里,我一直在依赖注入上苦苦挣扎。下面是我的代码- public void ConfigureServices(IServiceCollection services) { services.AddMvc(); services.AddTransient<IAccountBAL, AccountBAL>(); } public interface IAccountBAL { Task CreateSuperAdm
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
services.AddTransient<IAccountBAL, AccountBAL>();
}
public interface IAccountBAL
{
Task CreateSuperAdmin();
}
public class AccountBAL:IAccountBAL
{
private ApplicationDbContext _connection;
private readonly RoleManager<IdentityRole> _roleManager;
private readonly SignInManager<ApplicationUser> _signInManager;
private readonly UserManager<ApplicationUser> _userManager;
public AccountBAL(ApplicationDbContext connection, RoleManager<IdentityRole> roleManager, SignInManager<ApplicationUser> signInManager, UserManager<ApplicationUser> userManager)
{
_connection = connection;
_roleManager = roleManager;
_signInManager = signInManager;
_userManager = userManager;
}
public async Task CreateSuperAdmin()
{
//My Code
}
}
在
Startup
类中,您需要注册DbContext
,如下所示:
public void ConfigureServices(IServiceCollection services)
{
// ...
services.AddDbContext<ApplicationDbContext>(options =>
{
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"));
});
// ...
}
public void配置服务(IServiceCollection服务)
{
// ...
services.AddDbContext.您的配置服务中缺少很多内容
。您没有注册ApplicationDbContext
(这是您的实际错误)但是你也错过了UserManager
、rolemanger
和SignInManager
@KirkLarkin的注册。你节省了我的休息时间。谢谢。在我的情况下,错过了UserManager、rolemanger和SignInManager的注册。请回答可以接受。如果您按照我提供的链接配置您自己的基于DBContext
的Identity
,您将拥有所需的所有注册权限。
public void ConfigureServices(IServiceCollection services)
{
// ...
services.AddDbContext<ApplicationDbContext>(options =>
{
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"));
});
// ...
}