自动生成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
配置文件
<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> </命名>