博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WebAPI2使用AutoFac依赖注入完整解决方案。
阅读量:6121 次
发布时间:2019-06-21

本文共 1871 字,大约阅读时间需要 6 分钟。

WebApi2上进行依赖注入,在百度里能搜到的的完整解决方案的文章少之又少,缺胳膊断腿。

和MVC5依赖注入的不同之处,并且需要注意的地方,标记在注释当中。上Global代码:

namespace S2S.WebApi{    public class WebApiApplication : System.Web.HttpApplication    {        protected void Application_Start()        {            //----AutoFac  DI------            var builder = new ContainerBuilder();            SetupResolveRules(builder);            builder.RegisterApiControllers(Assembly.GetExecutingAssembly());               //RegisterApiControllers方法            var container = builder.Build();            HttpConfiguration config = GlobalConfiguration.Configuration;//注意此处HttpConfiguration类的 config对象,一定不要new,要从GlobalConfiguration获取            config.DependencyResolver = (new AutofacWebApiDependencyResolver(container));      //注意此处与MVC依赖注入不同            //---------------------------------------------------------            AreaRegistration.RegisterAllAreas();            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);            RouteConfig.RegisterRoutes(RouteTable.Routes);            BundleConfig.RegisterBundles(BundleTable.Bundles);                        AreaRegistration.RegisterAllAreas();            GlobalConfiguration.Configure(WebApiConfig.Register);            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);            RouteConfig.RegisterRoutes(RouteTable.Routes);            BundleConfig.RegisterBundles(BundleTable.Bundles);        }          ///        ///  AutoFac        ///         ///         private static void SetupResolveRules(ContainerBuilder builder)        {            var assembly = Assembly.Load("s2s.BLL");   //根据程序集名称加载程序集            builder.RegisterAssemblyTypes(assembly).SingleInstance();//每次都返回同一个实例            builder.RegisterAssemblyTypes(assembly).Where(t => t.Name.EndsWith("Service")).AsImplementedInterfaces();        }    }}

 也没有太多需要解释的地方,Controller中还是构造器注入。开发中已经亲测有效。 

   可以收藏,以后查看。

 

转载地址:http://kimka.baihongyu.com/

你可能感兴趣的文章
【Git入门之四】操作项目
查看>>
老男孩教育每日一题-第107天-简述你对***的理解,常见的有哪几种?
查看>>
Python学习--time
查看>>
在OSCHINA上的第一篇博文,以后好好学习吧
查看>>
高利率时代的结局,任重道远,前途叵测
查看>>
Debian 6.05安装后乱码
查看>>
欢迎大家观看本人录制的51CTO精彩视频课程!
查看>>
IntelliJ IDEA中设置忽略@param注释中的参数与方法中的参数列表不一致的检查
查看>>
关于软件开发的一些感悟
查看>>
uva 10806
查看>>
纯CSS3绘制的黑色图标按钮组合
查看>>
Linux中环境变量文件及配置
查看>>
从0开始学Flutter
查看>>
mysql操作入门基础之对数据库和表的增删改查
查看>>
IIS负载均衡
查看>>
分布式事务,EventBus 解决方案:CAP【中文文档】
查看>>
Linux下的CPU性能瓶颈分析案例
查看>>
spring mvc入门
查看>>
2012在数据库技术会议上的讲话PPT打包
查看>>
【Android】 TextView设置个别字体样式
查看>>