Exemplo n.º 1
0
        internal override LifestyleResolver <CType> GetLifestyleResolver <CType>(
            object syncLock,
            IExpressionCompiler <CType> expressionCompiler,
            CType testInstance)
        {
            Func <object> instanceResolver = () => expressionCompiler.InstanceResolver();

            return(new CustomLifecyleResolver <CType>(lifestyleDelegate(instanceResolver)));
        }
Exemplo n.º 2
0
        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
                }
            }
        }