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, созданного из шаблонов по умолчанию.

Другие вопросы по тегам