Autofac在Asp.net MVC中在 Areas拆分到不同DLL下的注入失败问题
生活随笔
收集整理的這篇文章主要介紹了
Autofac在Asp.net MVC中在 Areas拆分到不同DLL下的注入失败问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
廢話不多說,直接上代碼
public static class MvcContainer{public static IContainer Instance;public static System.Web.Mvc.IDependencyResolver Init(Func<ContainerBuilder, ContainerBuilder> func = null){var builder = new ContainerBuilder();//新建容器用于注冊組件MyBuild(builder);//注冊組件func?.Invoke(builder);Instance = builder.Build();//利用構建器創建容器return new AutofacDependencyResolver(Instance);//返回針對MVC的解析器}public static void MyBuild(ContainerBuilder builder){//注冊倉儲層Assembly repositoryAssembly = Assembly.Load("WenYuanAutoAutoFac.Repository");builder.RegisterAssemblyTypes(repositoryAssembly).PublicOnly() //只要public訪問權限的.Where(cc => cc.IsClass) //只要class類型的(排除值和interface類型).AsImplementedInterfaces(); //自動以其實現的接口暴露(包括Dispose接口)//注冊邏輯層Assembly serviceAssembly = Assembly.Load("Wangxc.AutoFac.Service");builder.RegisterAssemblyTypes(serviceAssembly).PublicOnly().Where(cc => cc.IsClass).AsImplementedInterfaces();//注冊MVC項目中拆分出來的不同Areas下面的ControllerAssembly MvcAssembly = Assembly.Load("Portal");Assembly XsAssembly = Assembly.Load("XS");Assembly ReportAssembly = Assembly.Load("Report");Assembly KcAssembly = Assembly.Load("KC");Assembly[] Assemblys = new Assembly[] { MvcAssembly , XsAssembly,ReportAssembly,KcAssembly};builder.RegisterControllers(Assemblys);}}?
總結
以上是生活随笔為你收集整理的Autofac在Asp.net MVC中在 Areas拆分到不同DLL下的注入失败问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 复习----使用链表实现栈(后进先出)及
- 下一篇: 微信开发3之php模板信息推送