我的存储库设置如下。
interface IRepository<T> where T : DataRow
{
T Get(int key);
}
interface ICartonRepository : IRepository<CartonDataRow>
{
}
class CartonRepository : ICartonRepository
{
public CartonDataRow Get(int key)
{
}
}
我还有一个 PackRepository,它的定义方式与 CartonRepository 相同。我想做的是类似以下的事情。
IRepository<DataRow> repository;
switch (rowType)
{
case Carton:
repository = new CartonRepository();
break;
case Pack:
repository = new PackRepository();
break;
}
有没有办法可以做到这一点?