ASP.NET Нет подходящего конструктора для WebSocketManagerMiddleware
Я получил ошибку, когда создал WebSocketManagerExtensions, как это:
System.InvalidOperationException
A suitable constructor for type
'CustomerManagementCore.WebSocketManager.WebSocketManagerMiddleware' could not be located. Ensure the type is concrete and services are registered for all parameters of a public constructor.
MapWebSocketManager
метод:
public static IApplicationBuilder MapWebSocketManager(this IApplicationBuilder app,
PathString path,
WebSocketHandler handler)
{
return app.Map(path, (_app) => _app.UseMiddleware<WebSocketManagerMiddleware>(handler));
}
WebSocketManagerMiddleware
конструктор:
public WebSocketManagerMiddleware(RequestDelegate next,
WebSocketHandler webSocketHandler)
{
_next = next;
_webSocketHandler = webSocketHandler;
}
Я знаю, есть ли ошибка с моим WebSocketManagerMiddleware
конструктор, но я понятия не имею. Кто-нибудь знает?
Благодарю.
1 ответ
Решение
По ошибке я бы догадался WebSocketHandler
не был добавлен в IServicesCollection
в вашем классе запуска. Как только вы добавите его в коллекцию сервисов, его можно будет вводить, как ожидается. Обычно это делается в ConfigureServices
метод для приложения ASP.NET Core, созданного из шаблонов по умолчанию.