在组件实例上调用Castle Interceptor

时间:2012-01-05 05:42:00

标签: .net castle-windsor castle-dynamicproxy

是否有任何简单的方法可以在我的IInterceptor上获取一个方法,以便在解析相关组件的任何实例后立即调用它?有点像IOnBehalfAware,但是它会被实际的组件实例调用,而不是ComponentModel。

1 个答案:

答案 0 :(得分:0)

结束这样的事情......定义我的IInterceptor(s)实现的界面:

public interface IInstanceAware
{
   void Execute(object instance); 
}

然后在注册组件时,执行

registration.OnCreate((kernel, instance) => 
{
   var accessor = instance as IProxyTargetAccessor;
   foreach(var instanceAware in accessor.GetInterceptors().OfType<IInstanceAware>())
   { 
       accessor.Execute(instance);
   }
};