汎用リポジトリクラスがあります。
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%が汎用です。