我不知道我想做什么是不可能的:或者我没有以正确的方式思考它.
我正在尝试构建一个存储库接口类,它接受泛型类型并将其用作大多数方法返回的基础,即:
public interface IRepository<T> { void Add(T source); T Find(int id); }
然后,这将由实际的存储库类继承,如下所示:
public class TestClientRepository : IRepository<ClientEmailAddress>,IRepository<ClientAccount> { }
例如,我想在ClientRepository中对几种不同的对象类型(ClientAccount,ClientEmailAddress等)执行操作;但总的来说,所需的操作类型都是一样的.
当我尝试使用TestClientRepository时(在显式实现Interfaces之后),我看不到多个Find和Add方法.
有人可以帮忙吗?
谢谢.
解决方法
当然 – 您所要做的就是将它用作适当的界面:
TestClientRepository repo = new TestClientRepository(); IRepository<ClientEmailAddress> addrRepo = repo; ClientEmailAddress address = addrRepo.Find(10); IRepository<ClientAccount> accountRepo = repo; ClientAccount accoutn = accountRepo.Find(5);