当前位置: 移动技术网 > IT编程>开发语言>.net > asp.net core 抽取Controller到类库及Autofac自动属性注入

asp.net core 抽取Controller到类库及Autofac自动属性注入

2018年12月13日  | 移动技术网IT编程  | 我要评论

跨栏跑,黑色烬丝长袍,美通卡使用范围

写在前面 
之前有个项目是用asp.net webapi做的,pc和移动端共用api的服务接口,balabala,正好最近在看关于asp.net core方面的资料,各种依赖注入,中间件,处理管道等,而且把webapi和mvc融合到了一起,就想着把之前那个项目移到asp.net core上。

由于之前的项目是把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

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网