是否可以在多个中间件中使用相同的路由器?

时间:2016-02-23 20:36:47

标签: c# asp.net-core asp.net-core-mvc

在Startup.cs中我想配置2个中间件:

  1. app.Use(或带有app.Use的app.Map)处理websocket请求,但需要特定的动态路由端点。
  2. 带有属性路由的app.UseMvc()。
  3. 在这种情况下如何在MVC中创建和重用路由器?

    PS。这是我的相关问题,我从不同的角度看待同样的问题:Opening a websocket channel inside MVC controller

1 个答案:

答案 0 :(得分:1)

我遇到了类似的问题,在查看来源后,我发现/*** * Get the Drawable from URL * @param urlString * @return */ public Drawable fetchDrawable(String urlString) { try { Drawable drawable = fetch(urlString); drawable.setBounds(0, 0, 0 + drawable.getIntrinsicWidth(), 0 + drawable.getIntrinsicHeight()); return drawable; } catch (Exception e) { return null; } } private Drawable fetch(String urlString) throws MalformedURLException, IOException { return new BitmapDrawable(c.getResources(), Picasso.with(c).load(urlString).get()); } 方法创建了自己的UseMvcRouteBuilder实例。这意味着您在使用IRouter时无法控制路线创建。

所以我可以建议创建UseMvc的替代方法,它将创建映射到不同处理程序的两个路由,一个路由到Mvc,第二个路由到Websocket。虽然我还没有测试过,但希望它有所帮助。