System.ArgumentException: 'Тип сервиса ICommand не поддерживается. Имя параметра: serviceType

Я пытаюсь использовать Belgrade-SqlClient (небольшая асинхронная вспомогательная библиотека ADO.NET)

в C# Web API все хорошо, но когда я пытаюсь зарегистрировать Icommand в качестве службы

я получил ошибку:

System.ArgumentException: 'The service type ICommand is not supported. Parameter name: serviceType

это мой webapiconfig.cs, где я добавляю ICommand в качестве службы:

string Conn = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString; ;
        config.Services.Add(typeof(ICommand), new Command(Conn));

и это Icommand:

using System.Threading.Tasks;

namespace Belgrade.SqlClient
{
    public interface ICommand : IQueryMapper, IQueryPipe
    {
        Task Exec();
    }
}

1 ответ

Я полагаю, вы используете config.Services как IServiceCollection. Тогда вам может понадобиться использовать AddTransient, например так:

config.Services.AddTransient<ICommand>(() => new Command(Conn))
Другие вопросы по тегам