是否可以有未绑定泛型列表?

时间:2019-04-15 20:30:14

标签: c#

令人惊讶的是,我没有在堆栈溢出中看到这个问题。

我有一个接口,定义如下:

IDatabaseRepository<in T> where T : DatabaseConfigBase

我有多种实现,例如:

MongoDatabaseRepository<in MongoDatabaseConfig>

MySqlDatabseRepository<in MySqlDatabaseConfig>

我还有一个工厂,可以向我返回所需的存储库,因此我可以在运行时根据配置检查正确的数据库:

class RepositoryFactory 
{
    public RepositoryFactory(IEnumerable<IDatabaseRepository> dbImplementations)

    public IEnumerable<IDatabaseRepository<>> Create(string dbName)
}

最后一个类无效,因为我不能接受仅IDatabaseRepository的IEnumerable。编译器要求我指定IDatabaseRepository<T>,但我不知道T是什么?我想要我所有实现的列表,无论它们的T大小!

除了对(对象)进行装箱和拆箱以外,还有其他解决方案吗?

0 个答案:

没有答案