我有一个通用的存储库类。获取类型特定版本的泛型类型
public class Repository<TEntity> where TEntity : class
{
public virtual TEntity Create()
{
// Create implementation.
}
public virtual bool Add(TEntity entity)
{
// Add implementation.
}
public virtual bool Delete(TEntity entity)
{
// Delete implementation.
}
public virtual int SaveChanges()
{
// Save changes implementation.
}
}
我有几种类型的不完全,所以我希望做一个具体实施beheaviour匹配,主要为Create
方法。
喜欢的东西:
public class SpecificEntityRepository : Repository<SpecificEntity>
{
public override SpecificEntity Create()
{
// Other create implementation.
}
}
有没有一种方法,如果一个人使用Repository<SpecificEntity>
返回的SpecificEntityRepository
方法的值,例如在Repository<>
构造函数返回SpecificEntityRepository
当参数类型等于SpecificEntity
?
我正在寻找一种通用的方法来做到这一点。在我的项目的最终版本中,可能会有多达200个特定的存储库,其中95%的功能是通用的。
谢谢你添加字典的想法。对于库的数量,我将需要它更实际。 – 2013-02-28 11:32:30