Concrete Repository类实现了2个接口,现在如何声明变量?

时间:2011-09-12 01:36:05

标签: c# nhibernate

我的UserRepository看起来像:

 public class UserRepository : Repository<User>, IUserRepository

现在如何使用接口声明变量,如果我这样做:

IUserRepository repo = new UserRepository();

然后如果我尝试使用在Repository中声明的方法,它显然不起作用。

我在这里做错了什么?

更新

我现在改变了这一点:

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 个答案:

答案 0 :(得分:3)

创建一个IRepository接口。然后让IUserRepository扩展IRepository。这应该可以帮到你。