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

San*_*der 3 asp.net dispose asp.net-mvc-4 asp.net-web-api

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

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

Dispose()控制器的方法是否合适?即是否保证一个控制器实例仅提供一个请求,或者只是一个实现细节?

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

Kir*_*lla 5

您可以使用名为扩展RegisterForDisposeHttpRequestMessage注册,你想,当一个请求进行处置掉任何资源.

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

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