zoukankan      html  css  js  c++  java
  • Autofac

      protected void Application_Start()
            {
                AreaRegistration.RegisterAllAreas();
                FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
                RouteConfig.RegisterRoutes(RouteTable.Routes);
                BundleConfig.RegisterBundles(BundleTable.Bundles);
                var builder = new ContainerBuilder();
    
                // 注册所有的Controller
                builder.RegisterControllers(Assembly.GetExecutingAssembly());
                //// RegisterType方式:
                //builder.RegisterType<UserService>().As<IService>().InstancePerRequest();
                //// Register方式:
                //builder.Register(c => new UserService()).AsSelf().InstancePerDependency();
    
                var IServices = Assembly.Load("BLL");
                var IRepository = Assembly.Load("DAL");
                //根据名称约定(服务层的接口和实现均以Service结尾),实现服务接口和服务实现的依赖
                builder.RegisterAssemblyTypes(IServices, IServices).Where(t => t.Name.EndsWith("Service")).AsImplementedInterfaces().InstancePerRequest();
                builder.RegisterAssemblyTypes(IRepository, IRepository).Where(t => t.Name.EndsWith("Repository")).AsImplementedInterfaces();
                
                // 把容器装入到微软默认的依赖注入容器中
                var container = builder.Build();
                DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
            }

    BLL

        public interface IService
        {
            string Test();
        }
      public class UserService:IService
        {
            private IRepository repository;
            public UserService(IRepository repository)
            {
                this.repository = repository;
            }
    
            public string Test()
            {
                return this.repository.GetUser();
            }
        }

    DAL

        public interface IRepository
        {
            string GetUser();
        }
        public class UserRepository:IRepository
        {
            public string GetUser()
            {
                return "获取到了用户";
            }
        }

    Controller

            private readonly IService _testService;
    
            public TestController(IService testService, IService testServiceA)
            {
                if (testService == testServiceA)//判断不同生命周期注入的对象是否相同
                {
                }
                _testService = testService;
            }
  • 相关阅读:
    一个简单的PHP登录演示(SESSION版 与 COOKIE版)
    web系统之session劫持解决
    CKFinder 1.4.3 任意文件上传漏洞
    linux服务器磁盘扩容的方法
    Linux下lvm在线扩容步骤
    Centos7使用LVM扩容磁盘(测试成功)
    CentOS7下利用init.d启动脚本实现tomcat开机自启动
    Linux tomcat安装详解(未完)
    linux下 目录(扩容)挂载磁盘
    Linux下环境变量设置
  • 原文地址:https://www.cnblogs.com/chenyishi/p/9157064.html
Copyright © 2011-2022 走看看