public ExpressionResolverBuilder(CallSiteRuntimeResolver runtimeResolver, IServiceScopeFactory serviceScopeFactory, ServiceProviderEngineScope rootScope) :
     base()
 {
     _runtimeResolver     = runtimeResolver ?? throw new ArgumentNullException(nameof(runtimeResolver));
     _serviceScopeFactory = serviceScopeFactory;
     _rootScope           = rootScope;
 }
Exemple #2
0
 public CallSiteExpressionBuilder(CallSiteRuntimeResolver runtimeResolver)
 {
     if (runtimeResolver == null)
     {
         throw new ArgumentNullException(nameof(runtimeResolver));
     }
     _runtimeResolver = runtimeResolver;
 }
Exemple #3
0
 public ILEmitResolverBuilder(CallSiteRuntimeResolver runtimeResolver, IServiceScopeFactory serviceScopeFactory, ServiceProviderEngineScope rootScope)
 {
     if (runtimeResolver == null)
     {
         throw new ArgumentNullException(nameof(runtimeResolver));
     }
     _runtimeResolver     = runtimeResolver;
     _serviceScopeFactory = serviceScopeFactory;
     _rootScope           = rootScope;
 }
 protected ServiceProviderEngine(IEnumerable <ServiceDescriptor> serviceDescriptors)
 {
     _createServiceAccessor = CreateServiceAccessor;
     Root            = new ServiceProviderEngineScope(this, isRoot: true);
     RuntimeResolver = new CallSiteRuntimeResolver();
     CallSiteFactory = new CallSiteFactory(serviceDescriptors);
     CallSiteFactory.Add(typeof(IServiceProvider), new ServiceProviderCallSite());
     CallSiteFactory.Add(typeof(IServiceScopeFactory), new ServiceScopeFactoryCallSite());
     RealizedServices = new ConcurrentDictionary <Type, Func <ServiceProviderEngineScope, object> >();
 }
 protected ServiceProviderEngine(IEnumerable <ServiceDescriptor> serviceDescriptors, IServiceProviderEngineCallback callback)
 {
     _createServiceAccessor = CreateServiceAccessor;
     _callback       = callback;
     Root            = new ServiceProviderEngineScope(this); //实例化根容器
     RuntimeResolver = new CallSiteRuntimeResolver();        //实例化 CallSite对象访问者对象
     CallSiteFactory = new CallSiteFactory(serviceDescriptors);
     CallSiteFactory.Add(typeof(IServiceProvider), new ServiceProviderCallSite());
     CallSiteFactory.Add(typeof(IServiceScopeFactory), new ServiceScopeFactoryCallSite());             // 缓存一个ServiceScopeFactoryCallSite服务,相当于缓存一个ServiceProviderEngine,根据此对象进行创建子容器
     RealizedServices = new ConcurrentDictionary <Type, Func <ServiceProviderEngineScope, object> >(); //缓存实例化对象的工厂
 }
Exemple #6
0
        protected ServiceProviderEngine(IEnumerable <ServiceDescriptor> serviceDescriptors, IServiceProviderEngineCallback callback)
        {
            _createServiceAccessor = CreateServiceAccessor;
            _callback = callback;

            Root              = new ServiceProviderEngineScope(this);
            RuntimeResolver   = new CallSiteRuntimeResolver();
            ExpressionBuilder = new CallSiteExpressionBuilder(RuntimeResolver, this, Root);
            CallSiteFactory   = new CallSiteFactory(serviceDescriptors);
            CallSiteFactory.Add(typeof(IServiceProvider), new ServiceProviderCallSite());
            CallSiteFactory.Add(typeof(IServiceScopeFactory), new ServiceScopeFactoryCallSite());
        }
Exemple #7
0
 public ILEmitResolverBuilder(CallSiteRuntimeResolver runtimeResolver, IServiceScopeFactory serviceScopeFactory, ServiceProviderEngineScope rootScope) :
     base()
 {
     if (runtimeResolver == null)
     {
         throw new ArgumentNullException(nameof(runtimeResolver));
     }
     _runtimeResolver     = runtimeResolver;
     _serviceScopeFactory = serviceScopeFactory;
     _rootScope           = rootScope;
     _scopeResolverCache  = new ConcurrentDictionary <ServiceCacheKey, GeneratedMethod>();
     _buildTypeDelegate   = (key, cs) => BuildTypeNoCache(cs);
 }
        public ExpressionResolverBuilder(CallSiteRuntimeResolver runtimeResolver, IServiceScopeFactory serviceScopeFactory, ServiceProviderEngineScope rootScope)
        {
            if (runtimeResolver == null)
            {
                throw new ArgumentNullException(nameof(runtimeResolver));
            }

            _scopeResolverCache  = new ConcurrentDictionary <ServiceCacheKey, Func <ServiceProviderEngineScope, object> >();
            _runtimeResolver     = runtimeResolver;
            _serviceScopeFactory = serviceScopeFactory;
            _rootScope           = rootScope;
            _buildTypeDelegate   = (key, cs) => BuildNoCache(cs);
        }
Exemple #9
0
 protected ServiceProviderEngine(
     IEnumerable <ServiceDescriptor> serviceDescriptors,
     IServiceProviderEngineCallback callback,
     IInterceptingProxyFactory interceptingProxyFactory)
 {
     _createServiceAccessor = CreateServiceAccessor;
     _callback       = callback;
     Root            = new ServiceProviderEngineScope(this);
     RuntimeResolver = new CallSiteRuntimeResolver();
     CallSiteFactory = new CallSiteFactory(serviceDescriptors, interceptingProxyFactory);
     CallSiteFactory.Add(typeof(IServiceProvider), new ServiceProviderCallSite());
     CallSiteFactory.Add(typeof(IServiceScopeFactory), new ServiceScopeFactoryCallSite());
     RealizedServices = new ConcurrentDictionary <Type, Func <ServiceProviderEngineScope, object> >();
 }