Exemplo n.º 1
0
        public FunctionsServiceProvider(IServiceCollection descriptors)
        {
            _root = new Container(rules => _defaultContainerRules);

            _root.Populate(descriptors);
            _root.UseInstance <IServiceProvider>(this);
            _root.UseInstance <FunctionsServiceProvider>(this);

            _currentResolver = new FunctionsResolver(_root);
        }
Exemplo n.º 2
0
        internal void UpdateChildServices(IServiceCollection serviceDescriptors)
        {
            var rules = _defaultContainerRules
                        .WithUnknownServiceResolvers(request => new DelegateFactory(_ => _root.Resolve(request.ServiceType, IfUnresolved.ReturnDefault)));

            var resolver = new Container(rules);

            resolver.Populate(serviceDescriptors);

            var previous = _currentResolver;

            _currentResolver = new FunctionsResolver(resolver);

            if (!ReferenceEquals(previous.Container, _root))
            {
                previous.Dispose();
            }
        }