zoukankan      html  css  js  c++  java
  • mvc

       MVC服务

    Autofac 控制反转容器
    先下载 Autofac dll,
    web.config 配置
    iis6
        <httpModules>
          <add name="ContainerDisposal" type="Autofac.Integration.Web.ContainerDisposalModule, Autofac.Integration.Web" />
        </httpModules>

        <modules>
          <!--ii7 配置ioc-->
          <add name="ContainerDisposal"
                type="Autofac.Integration.Web.ContainerDisposalModule,Autofac.Integration.Web"
               />
        </modules>

    var builder = new ContainerBuilder();
    builder.RegisterType 注册类型
    builder.Register 以Lampda方式注册
    builder.RegisterInstance 注册对象


    在mvc Global  添加如下
      
      public class MvcApplication : System.Web.HttpApplication,IContainerProviderAccessor
        {
            static IContainerProvider _containerProvider;
            public IContainerProvider ContainerProvider
            {
                get { return _containerProvider; }
            }
    
    
               
    
    
            public static void RegisterGlobalFilters(GlobalFilterCollection filters)
            {
                filters.Add(new HandleErrorAttribute());
            }
    
            public static void RegisterRoutes(RouteCollection routes)
            {
                routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
    
                routes.MapRoute(
                    "Default", // Route name
                    "{controller}/{action}/{id}", // URL with parameters
                    new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
                );
    
            }
    
            protected void Application_Start()
            {
              //  Assembly dll = Assembly.LoadFrom(System.Web.HttpContext.Current.Server.MapPath(@"bin\Shop.Data.Server.dll"));
    
                var builder = new ContainerBuilder();
    
                SetupResolveRules(builder);
    
             builder.RegisterControllers(Assembly.GetExecutingAssembly());
    
             
    
                _containerProvider = new ContainerProvider(builder.Build());
    
                ControllerBuilder.Current.SetControllerFactory(new AutofacControllerFactory(_containerProvider));
    
                AreaRegistration.RegisterAllAreas();
                RegisterGlobalFilters(GlobalFilters.Filters);
                RegisterRoutes(RouteTable.Routes);
    
                
            }
    
    
            private void SetupResolveRules(ContainerBuilder builder)
            {
                 //ioc 控制器反转
    
    
           //     builder.RegisterAssemblyTypes(Assembly.GetExecutingAssembly())
           //.Where(t => t.Name.EndsWith("Repository"))
           //.AsImplementedInterfaces();
    
               // builder.RegisterType<MessageRepository>().As<IMessageRepository>(); 第二种注册方法
    
    
                Assembly dll = Assembly.LoadFrom(System.Web.HttpContext.Current.Server.MapPath(@"bin\Shop.Data.Server.dll"));
                builder.RegisterAssemblyTypes(dll).Where(p => p.Name.EndsWith("Repository")).AsImplementedInterfaces();
               
    
       
     
            }
    
    
           
        }

      

    dll 要与项目放在同一目录
  • 相关阅读:
    Tarjan在图论中的应用(三)——用Tarjan来求解2-SAT
    【CodeForces】CodeForcesRound594 Div1 解题报告
    JS面向对象组件(三)--面向对象中的常用属性和方法
    JS面向对象组件(二)--Javascript原型链
    JS面向对象组件(一) ---包装对象与原型链
    JS面向对象组件(六) -- 拖拽功能以及组件的延展
    面试题目
    webstorm安装破解版
    面试题整理
    Javascript模块化编程(三):require.js的用法 (转)
  • 原文地址:https://www.cnblogs.com/chenxiao/p/2534910.html
Copyright © 2011-2022 走看看