I am using a Blazor WASM Application with .NET6
Whenever I try to use my service class it gives me this error 'Unable to resolve service for type 'Persistence.Data.DataContext' while attempting to activate 'Services.Customers.CustomerService'.'
Heres my classes (simplified):
Persistence.Data.DataContext:
public class DataContext : DbContext
{
public DbSet<Customer> Customers { get; set; }
public DataContext(DbContextOptions<DataContext> options) : base(options)
{
}
protected override void OnModelCreating(ModelBuilder builder)
{
// Add configurations
base.OnModelCreating(builder);
builder.ApplyConfiguration(new CustomerConfiguration());
}
}
Services.Customers.CustomerService:
public class CustomerService : ICustomerService
{
private readonly DataContext _dbContext;
public CustomerService(DataContext dbContext)
{
this._dbContext = dbContext;
}
//...
}
Client.Program.cs:
var builder = WebAssemblyHostBuilder.CreateDefault(args);
builder.RootComponents.Add<App>("#app");
builder.RootComponents.Add<HeadOutlet>("head::after");
builder.Services.AddMudServices();
builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });
builder.Services.AddScoped<ICustomerService, CustomerService>();
await builder.Build().RunAsync();
Server.Startup.cs:
public class Startup
{
public IConfiguration Configuration { get; }
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
[Obsolete]
public void ConfigureServices(IServiceCollection services)
{
var builder = new SqlConnectionStringBuilder(Configuration.GetConnectionString("DataContext"));
services.AddDbContext<DataContext>(options =>
options.UseSqlServer(builder.ConnectionString)
.EnableSensitiveDataLogging(Configuration.GetValue<bool>("Logging:EnableSqlParameterLogging")));
services.AddControllersWithViews();
services.AddScoped<DataInitializer>();
services.AddRazorPages();
services.AddScoped<ICustomerService, CustomerService>();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, DataInitializer dataInitializer)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseWebAssemblyDebugging();
app.UseSwagger();
app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "Vic API"));
dataInitializer.InitializeData();
}
else
{
app.UseExceptionHandler("/Error");
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseBlazorFrameworkFiles();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapRazorPages();
endpoints.MapControllers();
endpoints.MapFallbackToFile("index.html");
});
}
}
Thanks in advance