Мой UserRepository выглядит так:
public class UserRepository : Repository<User>, IUserRepository
Теперь, как мне объявить переменную с помощью интерфейса, если я это сделаю:
IUserRepository repo = new UserRepository();
И затем, если я попытаюсь использовать метод, который был объявлен в репозитории, он, очевидно, не будет работать.
Что я здесь не так делаю?
Обновление
Я изменил вещи сейчас:
public interface IRepository<T> { // methos here }
public interface IUserRepository : IRepository<IUser>
{
}
public class Repository<T> : IRepository<T> { // impl of methods here }
А мой UserRepository.cs:
public class UserRepository : Repository<User>, IUserRepository
{
}
Теперь, хотя в репозитории есть все реализации методов, я могу создать ошибку в UserRepository.cs, где перечислены все методы, которые необходимо реализовать.
(помните, что IUserRepository пока пуст, только у IRepository есть методы)