【发布时间】:2021-04-24 09:11:45
【问题描述】:
所以我试图注入一个通用存储库,它接收实体类型和实体使用的键类型作为通用类型。
声明看起来像这样:
public class GenericRepository<KeyType, T> : BaseRepository<T, NpgsqlConnection>, IGenericRepository<KeyType, T>
where T : class
where KeyType : struct
所以我尝试像这样注入它们:
services.AddTransient(typeof(IGenericRepository<>), typeof(GenericRepository<>));
这适用于只有一种泛型类型但不适用于两种泛型类型的情况。我收到以下错误:
使用泛型类型 'GenericRepository
' 需要 2 个类型参数
有人知道如何解决这个问题吗?
我知道我可以为每一个都做类,但我想像这样注入它:
public class RestaurantTypesService : IRestaurantTypesService
{
private readonly IGenericRepository<long, RestaurantType> _restaurantTypeRepository;
public RestaurantTypesService(IGenericRepository<long, RestaurantType> repository)
{
_restaurantTypeRepository = repository;
}
}
【问题讨论】:
标签: c# asp.net-core dependency-injection