@dotnetcsharp

Как правильно работать с зависимостями?

Добрый день, прошу совета что бы понять правильно делаю.
Пишу Web API, в файле program.cs регистрирую некий токен сервис (JWT) и сервис логина для него
builder.Services.AddTransient<IUserServiceLogin, UserServiceLogin>();
builder.Services.AddTransient<ITokenService, TokenService>();


В контроллере

public class UserController : Controller
{
    private readonly IConfiguration _configuration;
    private readonly IUserServiceLogin _userService;
    private readonly ITokenService _tokenService;

    public UserController(IConfiguration configuration,
        IUserServiceLogin userService, 
        ITokenService tokenService)
    {
        _configuration = configuration;
        _userService = userService;
        _tokenService = tokenService;
        _tokenService.configuration(_configuration);
        userServiceRegister.UserServiceRegisterInit(_tokenService);
           
public object Login(..) {
..
return object;
}
}


Контроллер обращается к сервису, внутри которого я должен работать с другим сервисом - tokenService. Но для работы userService я должен иметь tokenService не Null что бы при авторизации отдать пользователю токен.
Правильно ли реализовать так как сделал я? Сделать отдельную функцию init с передачей в нее параметров?
Сейчас все работает, но меня терзают сомнения что я написал говнокод)

Сам проект здесь: https://github.com/dotnetcsharp0x/SkymeyAPI/tree/m...
  • Вопрос задан
  • 94 просмотра
Решения вопроса 1
Если хочешь, чтобы в разных сервисах был один и тот же экземпляр, а не разные, то тогда тебе надо регистрировать как Scoped или Singleton.

Transient - создаёт новый экземпляр каждый раз
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы