ChiakiYu.Web.Global.AutofacRegister C# (CSharp) Method

AutofacRegister() private static method

Autofac注册
private static AutofacRegister ( ) : void
return void
        private static void AutofacRegister()
        {
            var builder = new ContainerBuilder();
            builder.RegisterGeneric(typeof (Repository<,>)).As(typeof (IRepository<,>));
            builder.RegisterGeneric(typeof (SettingService<>)).As(typeof (ISettingService<>));
            var baseType = typeof (IDependency);
            var path = AppDomain.CurrentDomain.RelativeSearchPath;
            var assemblies = Directory.GetFiles(path, "*.dll").Select(m => Assembly.LoadFrom(m)).ToArray();
            builder.RegisterAssemblyTypes(assemblies)
                .Where(type => baseType.IsAssignableFrom(type) && !type.IsAbstract)
                .AsSelf() //自身服务,用于没有接口的类
                .AsImplementedInterfaces() //接口服务
                .PropertiesAutowired() //属性注入
                .InstancePerLifetimeScope(); //保证生命周期基于请求

            builder.RegisterControllers(Assembly.GetExecutingAssembly()).PropertiesAutowired();
            builder.RegisterFilterProvider();
            var container = builder.Build();
            DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
        }