zoukankan      html  css  js  c++  java
  • NopCommerce源码分析ContainerBuilder builder.Update(container)

            /// <summary>
            /// Register dependencies
            /// </summary>
            /// <param name="config">Config</param>
            protected virtual void RegisterDependencies(NopConfig config)
            {
                var builder = new ContainerBuilder();
                var container = builder.Build();
                this._containerManager = new ContainerManager(container);
    
                //we create new instance of ContainerBuilder
                //because Build() or Update() method can only be called once on a ContainerBuilder.
    
                //dependencies
                var typeFinder = new WebAppTypeFinder();
                builder = new ContainerBuilder();
                builder.RegisterInstance(config).As<NopConfig>().SingleInstance();
                builder.RegisterInstance(this).As<IEngine>().SingleInstance();
                builder.RegisterInstance(typeFinder).As<ITypeFinder>().SingleInstance();
                builder.Update(container);
    
                //register dependencies provided by other assemblies
                builder = new ContainerBuilder();
                var drTypes = typeFinder.FindClassesOfType<IDependencyRegistrar>();
                var drInstances = new List<IDependencyRegistrar>();
                foreach (var drType in drTypes)
                    drInstances.Add((IDependencyRegistrar) Activator.CreateInstance(drType));
                //sort
                drInstances = drInstances.AsQueryable().OrderBy(t => t.Order).ToList();
                foreach (var dependencyRegistrar in drInstances)
                    dependencyRegistrar.Register(builder, typeFinder, config);
                builder.Update(container);
    
                //set dependency resolver
                DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
            }
    
            #endregion
  • 相关阅读:
    Annotation Type ManyToMany->>>>>Oracle
    windows 控制台默认为UTF-8显示的方法
    springboot读取配置文件
    Spring Boot配置文件放在jar外部
    Vue自定义过滤器
    vue中limitBy,filterBy,orderBy的用法
    track-by的使用
    Vue的computed属性
    vue实现百度下拉框
    Cas服务器以及客户端搭建
  • 原文地址:https://www.cnblogs.com/shiningrise/p/5572546.html
Copyright © 2011-2022 走看看