【发布时间】:2011-08-21 02:46:41
【问题描述】:
是否可以使用动态代理和 windsor 拦截 IInvocation(如果这种情况甚至需要 windsor。不过我正在使用它来配置代理生成)?
我想记录一个拦截改变了对被拦截方法的调用。
例如,传递的参数或返回值发生了变化。
请注意,这仅用于调试目的。
【问题讨论】:
标签: c# .net castle-windsor castle-dynamicproxy
是否可以使用动态代理和 windsor 拦截 IInvocation(如果这种情况甚至需要 windsor。不过我正在使用它来配置代理生成)?
我想记录一个拦截改变了对被拦截方法的调用。
例如,传递的参数或返回值发生了变化。
请注意,这仅用于调试目的。
【问题讨论】:
标签: c# .net castle-windsor castle-dynamicproxy
按照下面的代码:
public class TransactionInterceptor : IInterceptor
{
private readonly IUnitOfWork _UnitOfWork;
public TransactionInterceptor(IUnitOfWork unitOfWork)
{
_UnitOfWork = unitOfWork;
}
public void Intercept(IInvocation invocation)
{
_UnitOfWork.Begin();
try
{
invocation.Proceed();
_UnitOfWork.Commit();
}
catch (Exception)
{
_UnitOfWork.RollBack();
throw;
}
}
}
【讨论】:
是的,有可能,我推荐阅读this
【讨论】: