微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ASP.NET Web API请求完成后如何处置资源?

我试图暴露一个IQueryable<>通过ASP.NET Web API,我发现在请求完成之前我需要保持数据源处于打开状态,以便ASP.NET Web API中内置的OData查询系统可以完成其工作.

好的,这听起来很合理.但是我在哪里处理数据源?我没有看到任何明显的地方.我应该在应用程序中管理请求状态吗?这样做的标准方法是什么?

控制器的dispose()方法是否适当?即是保证一个控制器实例只服务一个请求,还是只是一个实现细节?

我正在使用ASP.NET MVC 4 RC中的ASP.NET Web API.

解决方法

您可以在HttpRequestMessage上使用名为 RegisterForDispose的扩展来注册在请求完成时要排除的任何资源.

顺便说一句,您可能希望在下一版Web API中查看以下关于IQueryable支持链接.
http://aspnetwebstack.codeplex.com/discussions/359229

[编辑]在Controller的dispose()方法中做事也是一个解决方案.在Web API中,基于ApiController的控制器始终是每个实例(每个请求一个控制器实例)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐