リポジトリを以下のように設定しています。
interface IRepository<T> where T : DataRow
{
T Get(int key);
}
interface ICartonRepository : IRepository<CartonDataRow>
{
}
class CartonRepository : ICartonRepository
{
public CartonDataRow Get(int key)
{
}
}
CartonRepositoryと同じ方法で定義されたPackRepositoryもあります。私がやりたいのは次のようなものです。
IRepository<DataRow> repository;
switch (rowType)
{
case Carton:
repository = new CartonRepository();
break;
case Pack:
repository = new PackRepository();
break;
}
これを達成する方法はありますか?