strucutremap 是否具有拦截能力,为什么我需要另一个像温莎城堡这样的库呢?有没有结构映射的本地方法来做到这一点?
使用 StructureMap 进行 AOP 日志记录是一个类似的问题,但答案位于城堡代理。
谢谢
strucutremap 是否具有拦截能力,为什么我需要另一个像温莎城堡这样的库呢?有没有结构映射的本地方法来做到这一点?
使用 StructureMap 进行 AOP 日志记录是一个类似的问题,但答案位于城堡代理。
谢谢
文档回答了这个问题:
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)。