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
  • 相关阅读:
    Cortex-M3 跳转到指定bin执行
    Keil生成汇编文件、bin文件
    鲁迅
    Cortex-M3的一些概念
    linux下tar.gz、tar、bz2、zip等解压缩、压缩命令小结【转】
    c/c++ linux下 移动、删除文件
    c/c++ linux下 获取时间戳
    c++ 生成随机字符串【转】
    c++ <fstream> 读写文件总结
    c++11 std::mutex
  • 原文地址:https://www.cnblogs.com/shiningrise/p/5572546.html
Copyright © 2011-2022 走看看