0

strucutremap 是否具有拦截能力,为什么我需要另一个像温莎城堡这样的库呢?有没有结构映射的本地方法来做到这一点?

使用 StructureMap 进行 AOP 日志记录是一个类似的问题,但答案位于城堡代理。

谢谢

4

1 回答 1

0

文档回答了这个问题:

StructureMap 2.5+ 增加了后处理甚至拦截和替换正在创建的对象的能力。虽然StructureMap 永远不会包含它自己的面向方面编程模型(世界不需要新的模型),但下面显示的拦截技术可用于从现有 AOP 工具(如 Microsoft 的 Policy Injection Application Block)应用运行时 AOP。

一般来说,拦截指定三种方式:

1) OnCreation()-- 注册一个 Action 以在创建后针对新对象运行

2) EnrichWith()-- 注册一个在创建后针对新对象运行的 Func,并为您提供返回与原始对象不同的对象的选项

3)实现接口的自定义类TypeInterceptor(所有拦截技术背后的运行时模型)

所以简而言之,StructureMap 的拦截功能处理的是在容器中操作/替换配置的对象——而不是应用 AOP 风格的拦截。

所以总结一下:

strucutremap 有拦截能力吗

是的,但不适用于 AOP 风格的拦截

为什么我需要另一个像温莎城堡这样的图书馆呢?

因为 AOP 不在 StructureMap 架构的范围内。已经有多种好的解决方案(包括 Castle Proxy)。

于 2013-06-13T11:56:50.323 回答