private static IDependencyResolutionRequest TranslateContext(IContext context)
        {
            Stack <IRequest> requestStack = new Stack <IRequest>();

            IRequest requestToAdd = context.Request;

            while (requestToAdd != null)
            {
                requestStack.Push(requestToAdd);
                requestToAdd = requestToAdd.ParentRequest;
            }

            IDependencyResolutionRequest wrappedDependencyRequest = null;

            foreach (IRequest request in requestStack)
            {
                var target = request.Target;
                if (target == null)
                {
                    continue;
                }
                var member = target.Member;
                if (member == null)
                {
                    continue;
                }
                var declaringType = member.DeclaringType;
                if (declaringType == null)
                {
                    continue;
                }

                wrappedDependencyRequest = new DependencyResolutionRequest(declaringType, wrappedDependencyRequest);
            }

            return(wrappedDependencyRequest);
        }
 public DependencyResolutionContext(IDependencyResolutionRequest request)
 {
     Request = request;
 }
Beispiel #3
0
 public DependencyResolutionRequest(Type requestedType, IDependencyResolutionRequest parentRequest = null)
 {
     RequestedType = requestedType;
     ParentRequest = parentRequest;
 }