내 컨텍스트가 처리되는 방법에 대해 궁금하거나 처리가 전혀 필요하지 않습니다. 가비지 컬렉터가 모든 것을 깨끗하게 정리할 수 있다는 것을 알고 있지만, 내 마음의 뒷부분에 잔소리하는 것이 있습니다.의존성 주입은 내 DB 연결을 처리하는 것입니까?
은 내가 conext가
Questsion, 내 코드 DB 연결이 열려 떠나 단위 테스트를 위해 주입이 필요합니다.
내 서비스는 컨텍스트가 생성자로 전달되는 방식으로 다음과 같이 표시됩니다. 종속성 주입은 autofac에서 처리합니다.
public class FooService : IFooService
{
private readonly Context context;
public CountryService(Context context)
{
this.context = context;
}
public IEnumerable<Foo> GetAll()
{
return context.Foo.ToList();
}
}
내 Autofac 내가으로 IDisposable이
public class FooService : IFooService , IDisposable
{
private readonly Context context;
public CountryService(Context context)
{
this.context = context;
}
public IEnumerable<Foo> GetAll()
{
return context.Foo.ToList();
}
private bool disposed = false;
protected virtual void Dispose(bool disposing)
{
if (!this.disposed)
{
if (disposing)
{
context.Dispose();
}
}
this.disposed = true;
}
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
}
[문서를 읽었습니까?] (http://autofac.readthedocs.io/en/latest/lifetime/disposal.html) –