internal override LifestyleResolver <CType> GetLifestyleResolver <CType>( object syncLock, IExpressionCompiler <CType> expressionCompiler, CType testInstance) { Func <object> instanceResolver = () => expressionCompiler.InstanceResolver(); return(new CustomLifecyleResolver <CType>(lifestyleDelegate(instanceResolver))); }
private void CompileResolver() { lock (syncLock) { if (!IsResolved()) { injector.SetResolveCalled(); // Indicate resolve called to change the injector to read-only if (isRecursionTestPending) // START: Handle compile loop { throw InjectorErrors.ErrorResolutionRecursionDetected.FormatEx(cType.Name); } isRecursionTestPending = true; resolver = bindingConfig.Lifestyle.GetLifestyleResolver <CType> ( syncLock, expressionCompiler, (CType)expressionCompiler.InstanceResolver()); isRecursionTestPending = false; // END: Handle compile loop } } }