asp.net core 抽取Controller到类库及Autofac自动属性注入
由于之前的项目是把controller抽离出来了,单独建了个类库,而且不止一个controller类库,当然还有不止一个的bll和ibll以及entity。怎么把这么些东西全部注入到asp.net core 容器里去呢,自带的注入容器方式太过繁琐,而且通过构造函数或者action参数的方式获取依赖也不够清爽。
今天分享的东西就是如果把controller从asp.net core 中抽离,以及通过通过加载类库程序集的方式,依赖进autofac容器,然后进行自动的属性注入。话不多少,直接上干货。
1、首先看下demo的结构
2、然后通过nuget引入autofac.extensions.dependencyinjection,
3、修改startup.cs的configureservices方法,让依赖注入容器改为autofac
另外要在services.addmvc()的上面加上这句,替换默认的容器;
4、把抽离的controller类库加入到应用
我这里写了两个获取controller和bll程序集的方法
当然如果你的bll也是多个的话,可以按照命名规则来确定getfiles的参数格式,如:apitest.bll.*.dll
调用mvcbuilder扩展方法addapplicationpart引入controller程序集
当然,如果你抽离的controller类库只有一个的话,还可以这么写
5、autofac注册程序集
当然你也可以把红框内的内容封装到defaultmodel中,也可以起个别的名字
6、测试
usercontroller同理。
希望上述内容会对你有帮助。
参考资料:
https://autofaccn.readthedocs.io/zh/latest/integration/aspnetcore.html
https://www.cnblogs.com/selimsong/p/10047321.html
下一篇: 从不同的角度去评价女人,岁月是把杀猪刀