Ошибка InvalidOperationException, исправленная при тестировании контроллера веб-api .net core 2.2

#c#

#c#

Вопрос:

Я создаю .Net web api с использованием C # для .Net 2.2. Я реализую шаблон проектирования репозитория и следую этому руководству: https://www.forevolve.com/en/articles/2017/10/02/design-patterns-web-api-service-and-repository-part-11/

мой код успешно создается и выполняется до тех пор, пока я не протестирую postman для отправки запроса на мой контроллер api, ошибка, которую я получаю, такова:

Система.InvalidOperationException: нет конструктора для типа ‘Cotal.Инфраструктура.Репозитории.TableStorageRepository`1[Cotal.Модели.EventEntity]’ может быть создан с использованием сервисов из контейнера служб и значений по умолчанию.

Мой файл startup.cs содержит следующее:

services.TryAddSingleton<ITableStorageRepository<EventEntity>, TableStorageRepository<EventEntity>>();

и моя модель EventEntity выглядит следующим образом:

 
  public class EventEntity : TableEntity
    {
        public EventEntity()
        {

        }
        
        public EventEntity(string userId, string rowKey)
        {
            PartitionKey = userId;
            RowKey = rowKey;
        }

        public int BrandId { get; set; }

  

Конкретный класс для TableStorageRepository выглядит следующим образом (я вырезал остальную часть кода для простоты):

     public class TableStorageRepository<TModel> : StorageRepository<ITableStorageSettings>, ITableStorageRepository<TModel>
        where TModel : class, ITableEntity, new()
    {


        public TableStorageRepository(ITableStorageSettings storageSettings)
            : base(storageSettings)
        {
        }

        public TableStorageRepository(CloudTable table)
            : this(new CloudTableSettings(table))
        {

        }
  

Комментарии:

1. Не имеет отношения к вашему вопросу, но я бы настоятельно не рекомендовал создавать новый API с использованием .NET Core 2.2. Он не поддерживается почти год и больше не получает исправлений ошибок или обновлений безопасности, что делает его уязвимым для различных проблем безопасности. devblogs.microsoft.com/dotnet /…

2. Более подробная информация о поддерживаемых версиях здесь: dotnet.microsoft.com/platform/support/policy/dotnet-core

3. спасибо @Martin Costello :), но тем не менее я заинтересован в попытке устранить эту ошибку.