public void InterceptAllReadProperties() { var aspect = Aspect.For <ComplexClass_Default_Constructure>(); aspect .PointCut(CutPointFlags.PropertyRead) .Advice <LoggerInterceptor>(); ServiceRegistry.Register <ComplexClass_Default_Constructure>(); var cc = ServiceLocator.Get <ComplexClass_Default_Constructure>(); Assert.IsNotNull(cc); WrapAndInvokeEverything(cc); }
public void Test() { var aspect = Aspect.For(typeof(BusinessListProxy <,>)) .PointCut() .Method("*") .Deep(2) .Advice <LoggerInterceptor>(); ServiceRegistry.Current.Register(typeof(IBusinessList <,>), typeof(BusinessListProxy <,>)); var items = ServiceLocator.Get <IBusinessList <ButtonList, Button> >(); Assert.IsNotNull(items); // 这里跟进不了切片 var ds = items.Fetch(new ReflectCriteria <ButtonList>("ButtonList", "Search", null)); Assert.IsNotNull(ds); }
public void InterceptAllByDynamicProxy() { var aspect = Aspect.For <ComplexClass_Default_Constructure>(); aspect .PointCut() .Method("*") .Deep(1) .Advice <LoggerInterceptor>(); var cc = (ComplexClass_Default_Constructure)Proxy.NewProxyInstance(typeof(ComplexClass_Default_Constructure), null, new InterceptorInvocationHandr(typeof(ComplexClass_Default_Constructure), Type.EmptyTypes)); Assert.IsNotNull(cc); WrapAndInvokeEverything(cc); }
public void InterceptAllByIoC() { var aspect = Aspect.For <ComplexClass_Default_Constructure>(); aspect .PointCut() .Method("*") .Deep(1) .Advice <LoggerInterceptor>(); ServiceRegistry.Register <ComplexClass_Default_Constructure>(); var cc = ServiceLocator.Get <ComplexClass_Default_Constructure>(); Assert.IsNotNull(cc); WrapAndInvokeEverything(cc); }
public void Test() { var aspect = Aspect.For(typeof(MyList <>)) .PointCut() .Method("*") .Deep(3) .Advice <LoggerInterceptor>(); ServiceRegistry.Current.Register(typeof(IMyList <>), typeof(MyList <>)); var list = ServiceLocator.Get <IMyList <int> >(); Assert.IsNotNull(list); list.Add(1); list.Test <string>("hello"); list.Test2 <string>(5, "word"); }