Bub*_*ble 2 c# unity-container code-injection unity-interception
asp.net unity中的接口拦截和构造函数注入有什么区别?我缺乏对Unity的理解我正在研究一个旧项目和unity.config,有些像这样,
<register type="ICRIC2012TrialUserService" mapTo="CRIC2012TrialUserService">
<lifetime type="perthread"/>
<interceptor type="InterfaceInterceptor"/>
<policyInjection/>
</register>
Run Code Online (Sandbox Code Playgroud)
但有些人没有
<interceptor type="InterfaceInterceptor"/>
Run Code Online (Sandbox Code Playgroud)
但是在项目中,这些类和接口以相同的方式工作,就像这样
private readonly IIncomingEstimateService _incomingEstimateService;
public ContractService(IIncomingEstimateService incomingEstimateService)
{
_incomingEstimateService = incomingEstimateService;
}
Run Code Online (Sandbox Code Playgroud)
拦截和注射是两回事.
拦截通常用于向类添加横切关注点(如日志记录),而无需一次又一次地实现它们.Unity中的拦截通过生成接收传入方法调用的代理并通过所谓的拦截器管道引导它们直到调用最终到达原始目标对象来工作.
这两篇文章介绍了如何拦截Unity的工作原理.
构造函数注入是实现依赖注入模式的一种方法.它是一种模式,告诉您如何构建应用程序以解耦组件.
网上有很多文章.
拦截和注射是完全不同的.但是一些依赖注入容器(如Unity)允许您同时执行这两个操作.您可以将依赖项注入类中,并使用容器基础结构拦截对这些类的调用.
| 归档时间: |
|
| 查看次数: |
2268 次 |
| 最近记录: |