1

나는 간단한 인젝터를 사용하여 프로젝트에 의존성 주입 함께 일하고, 그리고 내가 생활 특정 버전의 종속성을 해결, 3.0.0이 (내가 있기 때문에이 버전을 사용하고 있습니다를 정의하는 데 필요한 전까지 잘 작동 visual studio 2010)를 사용하고 있습니다.Simple Injector 버전 3.0.0에서 DefaultScopedLifestyle을 정의하는 방법은 무엇입니까?

container.Register<IService, RealService>(Lifestyle.Scoped); 

을하지만 그것을 확인할 때, 그것을 사용, 나는 DefaultScopeLifestyle을 정의해야 하더군요 : 공식 문서에서

는, 내가 코드 줄을 사용하여 종속성의 라이프 스타일을 정의 할 수 있다고 말한다 이 (또는 변화) :
container.Options.DefaultScopedLifestyle = new AsyncScopedLifestyle(); 

그러나이 버전의

, 나는 AsyncScopedLifestyle 클래스 또는 그것의 변화를 찾을 수 없습니다.

DefaultScopeLifestyle을 어떻게 설정하거나 종속성에 직접 설정할 수 있습니까?

답변

2

AsyncScopedLifestyle의 V3 상당 ExecutionContextScope입니다 :

container.Options.DefaultScopedLifesyle = new ExecutionContextScope(); 

이 생활은 SimpleInjector.Extensions.ExecutionContextScoping nuget package에 위치하고 있습니다.

이 패키지는 .NET 4.5 이상을 실행해야합니다.

당신이 .NET 4.0을 사용하는 경우 LifetimeScopeLifestyle/ThreadScopedLifestyle를 사용하여 동 기적으로 당신의 작업을 실행하거나 웹 응용 프로그램을 구축하는 경우에 WebRequestLifestyle을 사용해야합니다.

자세한 내용은 LifetimeScope here 및 ThreadScopedLifestyle here에 대한 정보를 참조하십시오.

+0

새로운 ExecutionContextScope()를 사용하려면 SimpleInjector.Extensions.ExecutionContextScoping 패키지를 Nuget에서 다운로드해야합니다. 그러나이 오류가 발생합니다 : 'SimpleInjector.Extensions.ExecutionContextScoping 3.0.0'패키지를 설치할 수 없습니다. 이 패키지를 '.NETFramework, Version = v4.0'을 대상으로하는 프로젝트에 설치하려고하지만 패키지 에 해당 어셈블리와 관련된 모든 어셈블리 참조 또는 콘텐츠 파일이 포함되어 있지 않습니다. – William

+0

이들은 직접 동일합니까? – Liam

+0

필자는 그것을 읽었으며 실제로 그것이 확장이라고 말했고, 그것은 nuget 패키지에서 사용할 수 있습니다. 그래서 설치를 시도하고이 오류가 발생했습니다. 또한 새로운 ExecutionContextScope()를 사용하여이 행을 실행하려고 시도했지만이 클래스를 찾을 수 없습니다. – William

관련 문제