strucutremap是否具有拦截能力,为什么我还需要像温莎城堡这样的另一个图书馆呢? 是否有一种来自结构图的原生方式呢?
AOP Logging with StructureMap是一个类似的问题,但答案可以追溯到城堡代理。
感谢
答案 0 :(得分:0)
The documentation回答这个问题:
StructureMap 2.5+增加了后处理甚至拦截的能力 并替换正在创建的对象。虽然 StructureMap永远不会 包括自己的面向方面编程模型(世界没有 需要一个新的,可以使用下面显示的拦截技术 从现有AOP工具(如策略注入)应用运行时AOP 来自Microsoft的应用程序阻止。
一般来说,拦截有三种方式:
1)
OnCreation()
- 在创建后注册一个针对新对象运行的动作2)
EnrichWith()
- 在创建后注册一个针对新对象运行的Func,并为您提供返回与原始对象不同的对象的选项3)实现
TypeInterceptor
接口的自定义类(所有拦截技术背后的运行时模型)
因此,简而言之,StructureMap的拦截功能涉及操纵/替换容器中的配置对象 - 不应用AOP样式拦截。
总结一下:
strucutremap是否具有拦截能力
是的,但不适用于AOP式拦截
为什么我需要像温莎城堡这样的另一个图书馆?
因为AOP不在StructureMap体系结构的范围内。已有多个好的解决方案(包括Castle Proxy)。