Esempio n. 1
0
 IServiceRegistration GetFakeContainerRegistration(ServiceResolvingContainerProxy instance, string name)
 {
     return(new FactoryRegistration(new Func <IResolvesServices>(() => instance))
     {
         ServiceType = typeof(IResolvesServices),
         Name = name,
         Cacheable = false,
         DisposeWithContainer = false,
     });
 }
Esempio n. 2
0
        /// <summary>
        /// Resolves the given resolution request and returns the result.
        /// </summary>
        /// <param name="request">Request.</param>
        public override ResolutionResult Resolve(ResolutionRequest request)
        {
            if (request.ServiceType != typeof(IResolvesServices) || request.ResolutionPath.IsEmpty)
            {
                return(ProxiedResolver.Resolve(request));
            }

            var containerRequest = new ResolutionRequest(typeof(IContainer), request.Name, request.ResolutionPath);
            var result           = ProxiedResolver.Resolve(containerRequest);

            if (!result.IsSuccess)
            {
                return(result);
            }

            var container        = (IContainer)result.ResolvedObject;
            var dynamicContainer = new ServiceResolvingContainerProxy(container, request.ResolutionPath);
            var registration     = GetFakeContainerRegistration(dynamicContainer, request.Name);

            return(ResolutionResult.Success(request.ResolutionPath, dynamicContainer));
        }