Сообщение об ошибке
Сообщение об ошибке сообщает вам, в чем именно заключается проблема.Отсутствует параметр типа.Просто добавьте его :) Кроме того, предоставленный код ошибки CS0305 является идеальным кандидатом для поиска в Google.
docs.microsoft.com гласит следующее:
Эта ошибка возникает, когда ожидаемое количество аргументов типа не найдено.Чтобы решить C0305, используйте необходимое количество аргументов типа.
Возможные решения
Существует несколько способов решения проблемы.
1.Удаление универсального параметра
Если вы планируете предоставить только один тип продукта, пропустите универсальный параметр полностью, и ошибка исчезнет.Дополнительно вы удалите ненужную сложность.
Interace
public interface IProductRepository: IDisposable
{
IEnumerable<ProductdbData> GetProductDetail();
Startup.cs
services.AddTransient<IProductRepository, ProductRepository>();
Контроллер:
namespace CompanyWeb.Controllers
{
[Route("api/[controller]")]
public class ProductController : Controller
{
private IProductRepository _ProductRepository;
public ProductController(IProductRepository productRepository)
{
_ProductRepository = productRepository;
}
2.Сохранение универсального параметра
Если вы решите придерживаться универсального параметра, вам действительно нужно исправить контроллер и интерфейс и передать параметр универсального типа в обоих местах.
Startup.cs
services.AddTransient<IProductRepository<ProductdbData>, ProductRepository>();
Контроллер:
namespace CompanyWeb.Controllers
{
[Route("api/[controller]")]
public class ProductController : Controller
{
private IProductRepository<ProductdbData> _ProductRepository;
public ProductController(IProductRepository<ProductdbData> productRepository)
{
_ProductRepository = productRepository;
}