Timur2342
@Timur2342

Почему тип не может преобразоваться в родительский?

Хотел преобразовать в "IUserServiceUserEntity>" этот тип ->
public class SellerService : IUserService<SellerEntity>
{
      ...
}

public interface IUserService<UserT> where UserT : UserEntity
{
    public Task<UserT?> Get(Guid guid);
    public Task<IEnumerable<UserT>> GetByEmail(string email);
    public Task Add(UserT user);
    public Task<bool> Update(UserT newValue);
    public Task<bool> Remove(Guid guid);
    public Task<bool> EmailVerUpdate(Guid guid);
}

public class SellerEntity : UserEntity
{
      ...
}

По логике должно все нормально работать, но в итоге получаю Cannot implicitly convert type 'SellerService' to 'IUserService'. An explicit conversion exists (are you missing a cast?). По какой причине?
  • Вопрос задан
  • 128 просмотров
Решения вопроса 1
Timur2342
@Timur2342 Автор вопроса
Решил таким образом(то есть сделав котроллер джинериком):

public class SellerLoginController : BaseLoginController<SellerEntity>
{
    public SellerLoginController(SellerService sellerService, IServiceProvider provider) : base(provider)
    {
        _sellerService = sellerService;
    }
    private readonly SellerService _sellerService;
    protected override IUserService<SellerEntity> _userService => _sellerService;
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
petermzg
@petermzg
Самый лучший программист
Потому что IUserService< T > не равен IUserService, это абсолютно разные интерфейсы
Ответ написан
Комментировать
Покажи код, который вызывает ошибку.
В ошибке написано, что кастануть можно, но только явно.
Ответ написан
Ваш ответ на вопрос

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

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