| 1234567891011121314151617181920212223242526272829303132 |
- 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();
- }
- /// <summary>
- /// 根据程序集名称获取程序集
- /// </summary>
- /// <param name="AssemblyName">程序集名称</param>
- /// <returns></returns>
- public static Assembly GetAssemblyByName(String AssemblyName)
- {
- return Assembly.Load(AssemblyName);
- }
- }
- }
|