#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 :), но тем не менее я заинтересован в попытке устранить эту ошибку.