看版本就不用多说了吧

时间:2022-06-10 03:06:35

早上五点..被手机震动吵醒。

之后直接打开电脑,筹算再加强下我本身的webapi这套对象。

虽然三年的事情经验接触了N多框架和各类气势派头的开发方法,但是让我本身来搞一套实在不会搞,学根本的时候学过,但也早已忘了,所以搞架构无从下手。

于是我上网百度了一篇文章

文章地点:https://www.cnblogs.com/zzqvq/p/5816091.html

凭据这篇文章所述,我弄好了..跑起来,写个简单的ajax请求了我webapi傍边的一个要领

报错....

看版本就不用多说了吧

What?我之前一直好好的,为啥会报错?

开启调试(一般写完代码我会不开调试先跑一遍)

发明错误来自 

看版本就不用多说了吧

也就是这段代码:

1 private IBLL.IUserService UserService = BLLContainer.Container.Resolve<IBLL.IUserService>();

错误原因全是英文,我这个没上过高中,结业测验英语也只有30分的渣渣,依靠着我三年来写代码的经验,认出了里面的几个关键英语词汇

注册,控制器

再理解联通一下,概略意思就是什么什么没有注册什么什么

..理解玩报错原因后我就懵了

看版本就不用多说了吧

心理暗骂了一声后无奈的查找具体原因,接着..我就发明是一个叫 Autofac的对象,Autofac是什么?在我找到的那篇文章中仿佛是什么依赖注入什么玩意

依赖注入又是什么?IOC又是什么?

看版本就不用多说了吧

不怕,由于我是自学来的,我根本差的一塌糊涂,不干预干与题我依旧能解决,于是我带着一丝不安(筹备放弃适才的代码从头上网找套)与自卑(根本太垃圾了)的表情去百度这个Autofac。

搜索:“Autofac webapi 注册“

搜到很多对象,最终颠末一系列的排查,测验考试终于找到了一个很稳健的解决方案

地点是:https://q.cnblogs.com/q/67709/

我拿到了一段代码

看版本就不用多说了吧

我也果断(其实是看其他文章受影响,也学着丢到Globla里面..)的放在了Globla里面的Application_Start要领里

好了,开始运行(这个时候我觉得报告我,工作远远没有这么简单)

公然,接着报错...此时我依旧弄了两个多小时了,我内心又点瓦解,但是又不想放弃,因为如果搞好了这是本身进步的验证,搞欠好,本身今早的研究又白费了,代码也白写了。

想了想面试官的讥笑,和以前的面试经历

(我17岁开始上班,三年后就是本年从头找事情的时候,我有20了,但是我是那种天生娃娃脸,看起来像其中学生,几乎到一个处所面试都要解嘲一波质疑和讥笑与不屑,总之,我感受十分不尊重人,然而嘲讽的是,有一家公司面试官是个外国人,在这个外国人面试的时候我能感应熏染到他把我看成了一个正常的上班族面试的人来跟我扳谈*有翻译人员的,最后踌躇另一家公司依旧招了我我也没去)

想了这些,我感受我不能只勾留在现阶段,我得往各个技术更深条理得去学习,同时也申饬本身不督事情了几多年,不管在学习什么新技术,永远不要忘了根本得弥补包孕英文阅读能力与根本得牢固,事情上每接触一个框架城市去感伤设计者得牛逼... 还有深深的自卑,如果本身来设计这些,完全不会有那么全面,固然同时也在学习这种设计艺术。

颠末由上思想斗争后,我再次开始了排查与全神贯注的注视我的代码

终于,我在最开始的那篇博文中照抄的代码中发明了autofac的注册方法

看版本就不用多说了吧

原本的代码是:

var builder = new ContainerBuilder(); //格局:builder.RegisterType<xxxx>().As<Ixxxx>().InstancePerLifetimeScope(); builder.RegisterType<BLL.UserService>().As<BLL.UserService>().InstancePerLifetimeScope(); container = builder.Build();

这时候我脑袋灵光一闪,马萨卡....

看版本就不用多说了吧

返回头看看我丢在Globla中的代码

卧槽???

比拟一下..。Globla中的代码照我这样用根柢就是废的啊!!!

于是,我把这一段放到了我的Container类阿谁初始化的要领的container = builder.Build();前

builder.RegisterAssemblyTypes(Assembly.GetExecutingAssembly()).AsImplementedInterfaces().AsSelf(); container = builder.Build();

运行..

公然。。。

最后未了验证我的想法,我把Globla中的代码删了,再运行测试

正常。。。

颠末这一番的折腾,我心里已经有点大白autofac感化是什么了。。还有就是相关配置。

此外,此中还有一个遇到的错误没提,就是我参考的那篇博文呢,是MVC方法,MVC注册autofac与webapi注册autofac存在着差异,就是我后面加的阿谁

而且特表要注意!!!!

你添加

这个autofac webapi 引用的时候,,要注意版本是不是和当前的webapi版本对应,一开始我安置了个 3 的...功效报一个错

也是查了一会,发明是版本不同错误应的问题,于是我从头安置了一个 2的,看版本就不用多说了吧,右键属性....