自动生成BaseController注入业务接口
 
public static string DataTableToAutoface(DataTable dt,string nameSpace) { StringBuilder sb = new StringBuilder(); StringBuilder sbContent = new StringBuilder(); for (var i = 0; i < dt.Rows.Count; i++) { sbContent.AppendFormat(@" public I{0} I{0} {{ get {{ return DependencyResolver.Current.GetService<I{0}>() as I{0}; }} }}", dt.Rows[i]["name"] + "Service"); } sb.AppendFormat(@" using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using Autofac; using {0}.Mapping; using {0}.IService; namespace {0}.UIBase.Controllers {{ /// <summary> /// 系统控制器层注入入口(统一生成请不要修改文件) /// </summary> public partial class BaseController : Controller {{ {1} }} }}", nameSpace, sbContent); return sb.ToString(); }
Global.asax
 
public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } ); } protected void Application_Start() { var builder = new ContainerBuilder(); builder.RegisterModule(new ConfigurationSettingsReader("命名")); Assembly[] asm = PluginHelper.GetAllAssembly().ToArray(); //Assembly.LoadFrom(Path.GetFileNameWithoutExtension("SharpSvn.dll")); builder.RegisterAssemblyTypes(asm); builder.RegisterControllers(Assembly.GetExecutingAssembly()); builder.RegisterAssemblyTypes(Assembly.GetExecutingAssembly()); builder.RegisterModelBinderProvider(); builder.RegisterFilterProvider();//注册Filter var container = builder.Build(); DependencyResolver.SetResolver(new AutofacDependencyResolver(container)); AreaRegistration.RegisterAllAreas(); RegisterRoutes(RouteTable.Routes); }
PluginHelper
 View Code
View Code配置文件
 
<configSections>
    <section name="module" type="Autofac.Configuration.SectionHandler, Autofac.Configuration"/>
  </configSections>
  <lq-module>
    <modules>
      <module type="命名空间.Service,命名空间"></module>
      <module type="命名空间.Repository,命名空间"></module>
    </modules>
  </lq-module>
</configuration>
web.config
  <命名>
    <files>
      <file name="Config/Module.config" section="module" />
    </files>
  </命名>
 
         
