IDisposable
컨트롤러를 구현하면 Dispose
메서드가 여전히 GC에 의해 호출되지 않는다고 가정합니다. 그게 무슨 뜻 그래서 나는 추가해야합니다 :컨트롤러 및 IDisposable
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
protected override void Dispose(bool disposing)
{
if (!isDalDisposed)
{
isDalDisposed = true;
if (disposing)
DAL.Dispose();
}
base.Dispose(disposing);
}
내가 Object.Finalize
를 사용하는 것이 나쁜 관행이고 가능하면 피해야한다 읽었습니다.
내가 가진 문제는 각 서비스의 수명을 제어하기 위해 using
문을 사용할 수없는 기본 생성자에서 내 "서비스"가 만들어 졌다는 것입니다. 그렇다면이 문제를 해결하는 올바른 방법은 무엇입니까?
ASP.NET MVC를 사용하고 있습니까? –
어떤 종류의 컨트롤러에 대해 이야기하고 있습니까? WebAPI에서 컨트롤러는 요청 당 인스턴스화되므로 명시 적으로 처리 할 필요가 없습니다. –
예 웹 API 컨트롤러에 대해 이야기하고 있습니다. 일회용 서비스가 있고 생성자에서 인스턴스화합니다. 작업이 끝나면 처분해야하지만 나쁜 실행이라고 읽음으로써 마무리 방법을 사용하지 않는 방법을 찾고 있습니다. – r3plica