Класс Concrete Repository реализует 2 интерфейса, как теперь объявить переменную? - PullRequest
1 голос
/ 12 сентября 2011

Мой 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 есть методы)

1 Ответ

3 голосов
/ 12 сентября 2011

Создание интерфейса IRepository. Затем IUserRepository расширяет IRepository. Это должно исправить тебя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...