IOC框架-AutoFac
Extensions层通过Nuget安装Autofac.Extras.DynamicProxy,Autofac.Extensions.DependencyInjection,
添加项目引用
新建ServiceExtensions文件夹,完成AutoFacModuleRegister
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | public class AutofacModuleRegister : Autofac.Module { protected override void Load(ContainerBuilder builder) { //builder.RegisterType<ArticleService>().As<IArticleService>(); var cacheType = new List<Type>(); if (AppSettings.app( new string [] { "Appsettings" , "LogAOP" , "Enabled" }).ObjToBool()) { builder.RegisterType<BlogLogAop>(); cacheType.Add( typeof (BlogLogAop)); } if (AppSettings.app( new string [] { "Appsettings" , "MemoryCachingAOP" , "Enabled" }).ObjToBool()) { builder.RegisterType<BlogCacheAop>(); cacheType.Add( typeof (BlogCacheAop)); } var assemblyServices = Assembly.Load( "SwiftCode.BBS.Services" ); builder.RegisterAssemblyTypes(assemblyServices).AsImplementedInterfaces().EnableInterfaceInterceptors().InterceptedBy(cacheType.ToArray()); var assemblyRepositories = Assembly.Load( "SwiftCode.BBS.Repositories" ); builder.RegisterAssemblyTypes(assemblyRepositories).AsImplementedInterfaces().InstancePerLifetimeScope(); } } |
test在Program.cs中新增
1 | builder.Host.UseServiceProviderFactory( new AutofacServiceProviderFactory()); |
注册服务
1 2 3 4 | builder.Host.ConfigureContainer<ContainerBuilder>(builder => { builder.RegisterModule<AutofacModuleRegister>(); }); |
posted @ 2022-02-27 16:34 血气方刚 阅读(298) 评论(0) 推荐(0) 编辑