Наличие интерфейсов распространяется на базовый абстрактный класс - PullRequest
0 голосов
/ 19 апреля 2020

Я пытаюсь создать базовую службу, которая имеет общие функциональные возможности, которая наследуется всеми другими службами, но у меня возникают проблемы и появляется следующая ошибка:

Type 'BaseService<Test>' in interface list is not an interface

Может кто-нибудь предложить способ исправить это? Или лучший способ go об этом?

Базовая служба

public class BaseService<T> where T : BaseEntity
    {
        private readonly Context _db;
        public BaseService()
        {

        }
        public BaseService(Context db)
        {
            _db = db;
        }
        public async Task<bool> Insert(T entity)
        {
            entity.ModifiedOn = DateTime.UtcNow;
            await _db.Set<T>().AddAsync(entity);
            try
            {
                return await _db.SaveChangesAsync() > 0 ? true : false;
            }
            catch (Exception ex)
            {
                return false;
            }
        }
    }

А затем обычная служба, которая будет иметь доступ к этому, но там, где отображается ошибка

public interface ITestService : BaseService<Test>
    {
    }

1 Ответ

1 голос
/ 19 апреля 2020

Интерфейс не может наследоваться от класса. Здесь BaseService<T> определяется как класс.

Чтобы исправить это, нужно объявить службу как класс следующим образом:

public class TestService : BaseService<Test>
{
}
...