내 프로젝트에서 종속 삽입 컨테이너로 Autofac
을 사용하고 있습니다. 나는 그 객체가 요청보다 오래 머물러 있기를 원하지 않으므로 InstancePerRequest
범위를 사용하고 싶습니다.Autofac InstancePerRequest 범위 - 범위 인스턴스를 다른 곳으로 다시 사용
다음은 게이트웨이 클래스에서 사용하고있는 코드로 각 요청이 통과하는 코드입니다.
using (var scope = _container.BeginLifetimeScope(MatchingScopeLifetimeTags.RequestLifetimeScopeTag))
{
var service = scope.Resolve<MyTestService>();
...
}
지금 내 코드에서 나는 메시지
No scope with a Tag matching 'AutofacWebRequest'
과 예외의 원인이되는 순간에
MyTestService
를 해결해야 할 몇 가지 다른 클래스를 찾습니다. 예외는 위의 그림과 같이
container
인스턴스에서 해결을 호출하는 반면 동일한
scope
인스턴스에서 resolve를 호출해야하기 때문입니다.
내 코드의 해당 위치에서 동일한 scope
인스턴스에 어떻게 액세스 할 수 있습니까? 모든 수업에서 BeingLifetimeScope
으로 전화를 걸 수는 없습니다.
[읽었습니까?] (http://autofac.readthedocs.io/en/latest/faq/) per-request-scope.html) –
예 읽었지만 여러 위치에서 액세스해야 할 때 '범위'인스턴스를 어디에 그리고 어떻게 유지해야하는지 알려주지 않습니다. –