【发布时间】:2012-02-04 15:05:51
【问题描述】:
我目前正在使用 EF 和存储库模式开发 MVC 3 应用程序。我创建了一个通用接口如下:
interface IGenericRepository<T>
{
}
还有一个抽象类如下:
abstract class GenericRepository<TContext ,T> : IGenericRepository<T>
where TContext : DbContext, new()
{
}
之后,我的 repo 像这样继承它们:
interface ICardRepository : IGenericRepository<Card>
{
}
和
class CardRepository : GenericRepository<EfContext, Card>,
ICardRepository
{
}
使用 Unity,我像这样注册接口和类:
container.RegisterType<ICardRepository, CardRepository>();
现在的问题是:我可以使用 IGenericRepository 代替 ICardRepository 吗?
像这样:
container.RegisterType<IGenericRepository<Card>, CardRepository>();
理论上我可以,但由于我仍然不明白这种模式是如何工作的,我不太确定我是否没有破坏或遗漏某些东西。
【问题讨论】:
标签: c# entity-framework dependency-injection unity-container