我已經實現的Web API類這樣:實現Web Api控制器 - 爲什麼使用IDisposable會干擾路由?
public class ControllerCore : ApiController
{
...do some basic things...
}
,然後在派生類中有:
public class LoginController : ControllerCore
{
public HttpResponseMessage Get()
{
// Get login status
}
public HttpResponseMessage Post([FromBody]LoginParams login)
{
// Do actual log in
}
}
這一切工作正常。不過,我想喜歡使ControllerCore一次性這樣我就可以創建和清除包含開放式數據庫連接管理對象:
public class ControllerCore : ApiController, IDisposable
{
protected DataAccess DAL;
private bool isDalDisposed;
public ControllerCore()
: base()
{
DAL = new DataAccess(); // opens a connection that will have to be cleaned up
isDalDisposed = false;
}
public new void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
protected override void Dispose(bool disposing)
{
if (!isDalDisposed)
{
isDalDisposed = true;
if (disposing)
DAL.Dispose();
}
base.Dispose(disposing);
}
...other code here...
}
的問題是,雖然在LoginController中「獲取」仍然有效,但「郵政」永遠不會被稱爲 - 路線似乎沒有工作。由於唯一的區別是郵政有參數,我想知道是否以某種方式一次性修改搞亂從JSON到LoginParams對象的轉換。
任何幫助將大大讚賞!
由於ApiController已經實現了IDisposbale接口,所以你的子類可以重寫基類的Dispose方法......爲什麼你想要再次實現IDisposable接口?只是FYI ...你可以參考類繼承的指導和處置行爲在這裏:http://msdn.microsoft.com/en-us/library/system.idisposable.aspx –