InvalidOperationException: невозможно разрешить службу для типа '' при попытке активировать ''C#

Место общения программистов C#
Ответить
Anonymous
 InvalidOperationException: невозможно разрешить службу для типа '' при попытке активировать ''

Сообщение Anonymous »

Второй день не могу решить проблему в проекте: Ошибка в запросах GET/POST.

При обработке запроса произошло необработанное исключение.
InvalidOperationException: невозможно разрешить службу для типа «RESTfull.Infrastructure.Interfaces.IStudentRepository» при попытке активации 'RESTfull.API.Controllers.StudentController'.

Буду очень благодарен, если поможете указать, где у меня ошибка!
В образовательных целях делаю приложения для учета посещаемости занятий
Решение состоит из трех проектов API, Домен, Инфраструктура.
Создал модель данных, настроил миграцию, она выполняется успешно и создает пока пустые таблицы (это видно через браузер объектов SQL)
Далее я начал разрабатывать репозитории, контроллеры и интерфейсы.
Начал с сущности «Студенты»
Создал файлы:
Студенческий репозиторий:
using Microsoft.EntityFrameworkCore;
using RESTfull.Domain.Model;
using RESTfull.Infrastructure.Data;
using RESTfull.Infrastructure.Interfaces;

namespace RESTfull.Infrastructure.Repositories
{
public class StudentRepository : IStudentRepository
{
private readonly Context _context;

public StudentRepository(Context context)
{
_context = context;
}

public async Task GetAllStudentsAsync()
{
return await _context.Students.Include(s => s.Group).ToListAsync();
}

public async Task GetStudentByIdAsync(int studentId)
{
return await _context.Students.Include(s => s.Group).FirstOrDefaultAsync(s => s.StudentId == studentId);
}

public async Task AddStudentAsync(Student student)
{
_context.Students.Add(student);
await _context.SaveChangesAsync();
return student;
}

public async Task UpdateStudentAsync(Student student)
{
_context.Entry(student).State = EntityState.Modified;
await _context.SaveChangesAsync();
return student;
}

public async Task DeleteStudentAsync(int studentId)
{
var student = await _context.Students.FindAsync(studentId);
if (student == null)
{
return null;
}

_context.Students.Remove(student);
await _context.SaveChangesAsync();
return student;
}
}
}

Студентконтроллер:
using System.Collections.Generic;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using RESTfull.Domain.Model;
using RESTfull.Infrastructure.Interfaces;
using RESTfull.Infrastructure.Repositories;

namespace RESTfull.API.Controllers
{
[ApiController]
[Route("api/[controller]")]
public class StudentController : ControllerBase
{
private readonly IStudentRepository _studentRepository;

public StudentController(IStudentRepository studentRepository)
{
_studentRepository = studentRepository;
}

[HttpGet]
public async Task GetStudents()
{
return await _studentRepository.GetAllStudentsAsync();
}

[HttpGet("{id}")]
public async Task GetStudent(int id)
{
var student = await _studentRepository.GetStudentByIdAsync(id);

if (student == null)
{
return NotFound();
}

return student;
}

[HttpPost]
public async Task PostStudent(Student student)
{
await _studentRepository.AddStudentAsync(student);

return CreatedAtAction("GetStudent", new { id = student.StudentId }, student);
}

[HttpPut("{id}")]
public async Task PutStudent(int id, Student student)
{
if (id != student.StudentId)
{
return BadRequest();
}

await _studentRepository.UpdateStudentAsync(student);

return NoContent();
}

[HttpDelete("{id}")]
public async Task DeleteStudent(int id)
{
var student = await _studentRepository.DeleteStudentAsync(id);

if (student == null)
{
return NotFound();
}

return NoContent();
}
}
}

IStudentRepository:
using System.Collections.Generic;
using System.Threading.Tasks;
using RESTfull.Domain.Model;

namespace RESTfull.Infrastructure.Interfaces
{
public interface IStudentRepository
{
Task GetAllStudentsAsync();
Task GetStudentByIdAsync(int studentId);
Task AddStudentAsync(Student student);
Task UpdateStudentAsync(Student student);
Task DeleteStudentAsync(int studentId);
}
}


Подробнее здесь: https://stackoverflow.com/questions/793 ... e-attempti
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»