В этой публикации, о которой я говорил, я использовал универсальный базовый класс, чтобы позволить мне создавать классы репозитория без дублирования нагрузки основного кода сантехники.
Каждый репозиторий доступен через интерфейс. В приведенном ниже коде для краткости я покажу только один из методов:
Интерфейс:
IQueryable<Suggestion> All { get; }
Базовый базовый класс
public IQueryable<T> All
{
get { return _unitOfWork.GetList<T>(); }
}
Конкретный класс (реализует интерфейс и расширяет базовый базовый класс)
public IQueryable<Suggestion> All
{
get { return _unitOfWork.GetList<Suggestion>(); }
}
Я ожидал, что смогу просто удалить метод из конкретного класса, а компилятор вместо этого будет использовать реализацию базового базового класса и выработать то, что предназначено для удовлетворения интерфейса. Но нет!
Когда я удаляю метод, я получаю старую ошибку «не реализует элемент интерфейса».
Если я не могу этого сделать, мои усилия по использованию базового базового класса не были бессмысленными? Или есть способ обойти это?