【发布时间】:2010-12-04 04:26:11
【问题描述】:
Spring.Net Aspects 是否可能不适用于 Asp.Net 控制器?
我想在控制器的 Action 方法上配置事务,但代理似乎没有触发。
<object id="ControllerClassPointcut" type="Spring.Aop.Support.SdkRegularExpressionMethodPointcut, Spring.Aop">
<property name="patterns">
<list>
<value>xxx.Controllers.CompanyController.*</value>
</list>
</property>
</object>
<aop:config>
<aop:advisor pointcut-ref="ControllerClassPointcut" advice-ref="TxAdvice"/>
<!-- TxAdvice taken from ServiceContext -->
</aop:config>
<tx:advice id="TxAdvice" transaction-manager="TransactionManager">
<tx:attributes>
<tx:method name="*" propagation="Required"/>
</tx:attributes>
</tx:advice>
而CompanyController的action方法是:
[HttpPost]
public virtual ActionResult Create(Guid id, CompanyonViewModel vm)
{
...
}
但我的建议没有生效,虽然切入点被识别。如果我将控制器以外的其他类作为切入点,它就可以工作。
对于某些方法,建议有效。例如对于存储库的设置器。但是 Sprint.Net 不承认调用了动作方法“Create”
候选人是:'xxx.Controllers.CompanyController.set_CompanyService';模式是'xxx.Controllers.CompanyController.*';匹配=真 候选顾问 [DefaultObjectFactoryPointcutAdvisor: 切入点 [Spring.Aop.Support.SdkRegularExpressionMethodPointcut];建议对象 = 'TxAdvice'] 接受 targetType [xxx.Controllers.CompanyController]
感谢您的帮助
【问题讨论】:
标签: asp.net-mvc asp.net-mvc-2 aop spring.net