跨栏跑,黑色烬丝长袍,美通卡使用范围
由于之前的项目是把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
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Blazor server side 自家的一些开源的, 实用型项目的进度之 CEF客户端
.NET IoC模式依赖反转(DIP)、控制反转(Ioc)、依赖注入(DI)
vue+.netcore可支持业务代码扩展的开发框架 VOL.Vue 2.0版本发布
网友评论