汎用リポジトリクラスがあります。
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.
}
}
主にメソッドの動作と完全に一致しないタイプがいくつかあるCreateので、特定の実装を作成したいと思います。
何かのようなもの:
public class SpecificEntityRepository : Repository<SpecificEntity>
{
public override SpecificEntity Create()
{
// Other create implementation.
}
}
Repository<SpecificEntity>人がのメソッドの値を返すために使用する場合、SpecificEntityRepositoryたとえば、引数の型が等しい場合SpecificEntityRepositoryのコンストラクターに戻る方法はありますか?Repository<>SpecificEntity
私はこれを行うための一般的な方法を探しています。私のプロジェクトの最終バージョンには、最大200の特定のリポジトリが存在する可能性があり、機能の95%が汎用です。