У меня есть следующий класс Middleware, который получает данные маршрута для текущего запроса.
Если вы выполните Get на контроллере значений, вы увидите context.GetRouteData () возвращает значение и не является нулевым,Я подключил Swagger \ Swashbuckle к присоединенному проекту, чтобы упростить демонстрацию.
Однако, если вы вызываете контроллер OData для блога (http://localhost:40946/odata/Blog), context.GetRouteData () возвращает null.
Кто-нибудь знает, как получить доступ к RouteData из промежуточного программного обеспечения для запроса OData?
public class TestMiddleware
{
protected readonly RequestDelegate _next;
public TestMiddleware(RequestDelegate next)
{
this._next = next;
}
public virtual async Task Invoke(HttpContext context)
{
var routeData = context.GetRouteData();
await this._next.Invoke(context);
}
}
Ссылка на пример решения, демонстрирующего проблему .