抖音技术能力大揭密!钜惠大礼、深度体验,尽在火山引擎增长沙龙,就等你来! 立即报名>> 了解详情
写点什么

ASP.NET Web API 和依赖注入

2012 年 10 月 18 日

ASP.NET Web API 中自带了一个依赖解析器(Dependency Resolver)接口,允许我们向控制器注入依赖关系。不过, Mark Seemann 建议要达到此目的最好还是使用 IHttpControllerActivator 接口,并举了两个例子。

使用 IDependencyResolver 会带来哪些问题呢?Mark 做出了解释:

问题是,在某个(IDependencyResolver 的)实现中,你所得到的是一个 Type 实例,并要求返回一个对象,但你却并不了解上下文信息。你不知道依赖关系图有多深,并且当被多次要求提供相同服务的实例时,你并不知道这是来自同一个 HTTP 请求,还是多个并发的 HTTP 请求。

Mark 建议最好替换服务容器(Service Container)中的 IHttpControllerActivator 接口。IHttpControllerActivator 提供了 HttpRequestMessage 对象,可以提供上下文信息。他还列举了两个示例,一个是“使用简单的自定义DI 容器”,一个是“使用更加健壮的DI 容器,Castle Windsor ”。

注意,不管是哪种方法,每个请求都会创建一次控制器,并且在请求被处理后释放这些控制器。区别主要在于解析类型的时候,容器可以使用哪些信息。 在更广的范围来说,这只是 ASP.NET 可扩展性的一个示例。

查看英文原文 ASP.NET Web API And Dependency Injection


给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2012 年 10 月 18 日 09:412427
用户头像

发布了 59 篇内容, 共 19.2 次阅读, 收获喜欢 3 次。

关注

评论

发布
暂无评论
发现更多内容

第一周作业-JD

Ashley.

产品经理 实习

终结代孕乱象,一场科技与黑产的赛跑

脑极体

阿里技术官甩出百亿级并发系统设计高阶手册,原来这才叫高并发!

Java架构之路

Java 程序员 架构 面试 编程语言

超赞!肝完这份阿里微服务高阶笔记,我构建出了自己的“微”服务

Java架构之路

Java 程序员 架构 面试 编程语言

产品岗位观察小结

庞玉坤

产品经理 产品经理训练营 极客大学认识产品经理 极客大学产品经理训练营

产品经理介绍总结

Jobs

两行代码修复了解析MySQL8.x binlog错位的问题!!

冰河

MySQL 中间件 Binlog 二进制日志 数据异构

高情商与低情商:有效的沟通

北风

交流 情商

产品训练营第一周作业

万顷湖天碧

产品经理训练营

第一周作业

戎帅

产品岗位对比&自身岗位

novaln🍉

PM 第一次作业

郭栋

产品经理训练营

第一章 作业

青葵

学习笔记

第一周总结

yoki

SRE和Devops 的相同与不同

techboy

产品经理岗位要求备忘录

夏天的风

产品经理

作业:项目经理岗位备忘录

顾庆隆

项目经理

2021年产品训练营-第一周作业

Meng

no.1 作业

郭栋

产品经理训练营

产品经理训练营-第一周作业

玖玖

极客大学产品经理训练营

产品经理第一课作业

产品经理训练营

产品经理训练营第一周学习总结

月亮 😝

一个中科大差生,8年程序员工作的总结

Java架构师迁哥

认识产品经理

夏天的风

产品经理

产品经理训练营第一章作业-G20210639010157

苏格图德

产品经理训练营

产品经理岗位需求分布

jpcr987i

说说 Ruby 与 Serverless

donghui

ruby Serverless

华为20级大牛用200张图彻底讲清大学四年我们没学会的网络知识!

Java架构之路

Java 程序员 架构 面试 编程语言

「年度总结」在字节跳动混了两年,然后呢?

Java架构师迁哥

产品经理训练营第一章作业

黑小白白白

极客大学产品经理训练营

极客产品训练营第一课作业

HaoJi

产品经理训练营

Study Go: From Zero to Hero

Study Go: From Zero to Hero

ASP.NET Web API和依赖注入-InfoQ