다음 코드와 명세서 및 해당 객체 처리의 범위에 대해 혼동스러워합니다.내부 사용 회원의 범위
using(DbFactory db = new DbFactory())
{
Repository repo = new Repository<someobject>(db);
result = repo.Get(somecondition);
}
이 코드에서 블록 사용을 실행 한 후에는 DbFactory
이 삭제됩니까?
repo
변수의 범위는 using 문 내부에서 사용됩니까?
DbFactory
은 Repository
에 사용되며 DbFactory
을 보유하는 멤버 변수가 있습니다. 이렇게 처리하면 DbFactory
이 처리됩니까?
EDIT1 :
Repository repo;
ResultObject result;
using(DbFactory db = new DbFactory())
{
repo = new Repository<someobject>(db);
result = repo.Get(somecondition);
}
public class Repository
{
private _dbFactory;
public Repository(DbFactory dbFactory)
{
_dbFactory = dbFactory;
}
}
는 이제 DbFactory이 사용하는 문 다음에 배치됩니다 것인가?
질문을 수정했습니다. 나는 repo 변수가 using 문이나 DbContext를 사용한 후에 DbContext의 처분을 저장하고 repo가 gc를 기다리는 것을 혼란스럽게 생각합니까? – Sreejith
Dispose 메서드는 소멸자가 아니므로 Dispose 메서드가있는 경우 GC가 호출되지 않으므로 Dispose는 GarbageCollector와 아무 관련이 없습니다. – Vir
@jonskeet 중대한 시점, 나는 처분의 그 타이밍을 찾고있다. – Sreejith