作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
WCF REST(和 WCF WebApi)如何将 Uri 映射到正确的服务端点?
在 WCF WebApi Preview 4 的上下文中:在自定义委托(delegate) channel 内,我想根据传入的 HttpRequestMessage.RequestUri 查找关联的路由前缀或服务类型。
例如,
RouteTable.Routes.MapServiceRoute<ManagersResource>("employees/managers", config);
RouteTable.Routes.MapServiceRoute<EmployeesResource>("employees", config);
假设收到 http://server/employees/John 的请求
当ResourceFactoryProvider
实例化时,它已经知 Prop 体的服务类型。我似乎无法追踪 Uri 和路由表路由之间的解析发生在哪里。
提前非常感谢。
最佳答案
通过使用MapServiceRoute<TService>
,代码实际上是注册一个ServiceHostFactory
在 ASP.NET 路由表中。因此,首先,请求到达 ASP.NET,然后将其定向到员工资源服务(这是 URL 可以映射到的唯一路由)。此时,WCF Web API 服务主机 ( HttpConfigurableServiceHost
) 将使用 UriTemplateTable
将请求分派(dispatch)到适当的操作:如果您有类似下面的代码的内容,则这就是将被调用的操作:
[WebGet(UriTemplate = "/{employeeName}")]
public Employee Get(string employeeName);
关于wcf - WCF WebApi 如何将请求 URI 映射到适当的服务类型/操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6446480/
我是一名优秀的程序员,十分优秀!