using Autofac; using System; using System.Linq; using System.Reflection; namespace YiSha.Admin.WebApi.AutoFac { public class AutofacModuleRegister : Autofac.Module { //重写Autofac管道Load方法,在这里注册注入 protected override void Load(ContainerBuilder builder) { //注册Service中的对象,Service中的类要以Service结尾,否则注册失败 builder.RegisterAssemblyTypes(GetAssemblyByName("YiSha.IService")).Where(a => a.Name.StartsWith("I") && a.Name.EndsWith("Service")).AsImplementedInterfaces(); builder.RegisterAssemblyTypes(GetAssemblyByName("YiSha.Service")).Where(a => a.Name.EndsWith("Service")).AsImplementedInterfaces(); builder.RegisterAssemblyTypes(GetAssemblyByName("YiSha.IBusiness")).Where(a => a.Name.StartsWith("I") && a.Name.EndsWith("BLL")).AsImplementedInterfaces(); builder.RegisterAssemblyTypes(GetAssemblyByName("YiSha.Business")).Where(a => a.Name.EndsWith("BLL")).AsImplementedInterfaces(); builder.RegisterAssemblyTypes(GetAssemblyByName("YiSha.Business.Cache")).Where(a => (a.Name.StartsWith("I") && a.Name.EndsWith("Business")) || (a.Name.EndsWith("Business")) || (a.Name.StartsWith("I") && a.Name.EndsWith("Service")) || (a.Name.EndsWith("Service"))).AsImplementedInterfaces(); builder.RegisterAssemblyTypes(GetAssemblyByName("YiSha.Business.AutoJob")).Where(a => (a.Name.StartsWith("I") && a.Name.EndsWith("Business")) || (a.Name.EndsWith("Business")) || (a.Name.StartsWith("I") && a.Name.EndsWith("Service")) || (a.Name.EndsWith("Service"))).AsImplementedInterfaces(); } /// /// 根据程序集名称获取程序集 /// /// 程序集名称 /// public static Assembly GetAssemblyByName(String AssemblyName) { return Assembly.Load(AssemblyName); } } }