У меня есть проблема, которую вы можете прочитать в заголовке этого вопроса. Я думаю, что это что-то о Dependency Injection topi c, я пытался решить, следуя решению других вопросов здесь, в stackoverflow, но не смог решить. Итак, я здесь.
В моем проекте есть слои Data, Business и Api. Мой уровень данных, с указанием c, Репозиторий имеет:
namespace Data.Repository
{
public class RMovie : IMovie
{
private EDBContext db;
public RMovie()
{
db = new EDBContext();
}
public List<Tmovie> Read()
{
var listMovies = db.Tmovie.ToListAsync().Result;
return listMovies;
}
}
}
На бизнес-уровне, указав c, в Сервисах:
namespace Business.Services
{
public class SMovie : IMovie
{
private RMovie dataMovie;
public SMovie()
{
dataMovie = new RMovie();
}
public List<Tmovie> Read()
{
return dataMovie.Read();
}
}
}
В API слой, определяемый c в Контроллере:
using Business.Services;
namespace API.Controllers
{
[Produces("application/json")]
[Route("api/Movie")]
public class MovieController : ControllerBase
{
private readonly SMovie _context;
public MovieController(SMovie context)
{
_context = context;
}
[HttpGet]
public IActionResult GetMovie()
{
return new ObjectResult(_context.Read());
}
}
}
И в запуске проекта Api у меня есть:
using Business.Interfaces;
using Business.Services;
using Data.Models;
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers();
var connection = @"Server=NAMEOFTHESQLSERVER;Database=EDB;Trusted_Connection=True;";
services.AddDbContext<XXXContext>(options => options.UseSqlServer(connection));
// Add application services.
services.AddScoped<IMovie, SMovie>();
}
Я думаю, что все в порядке, но это не так , При запуске проекта я получил следующее сообщение:
InvalidOperationException: невозможно разрешить службу для типа «Business.Services.SMov ie» при попытке активировать «API.Controllers.MovieController» .
Microsoft.Extensions.DependencyInjection.ActivatorUtilities.GetService (IServiceProvider sp, Type type, Type requiredBy, bool isDefaultParameterRequired)
Любой может помочь мне !, я буду признателен!
Спасибо.