private List<Expression> GenerateAspectCalls(IEnumerable aspects, LocationInterceptionArgs args) { var aspectCalls = new List<Expression>(); foreach (var aspect in aspects) { aspectCalls.Add( Expression.Call(Expression.Constant(aspect), typeof(LocationInterceptionAspect).GetMethod("OnGetValue"), Expression.Constant(args))); } return aspectCalls; }
/// <summary> /// Method invoked instead of the Set semantic of the property to which the current aspect is applied. /// </summary> /// <param name="args">Property arguments.</param> public virtual void OnSetValue(LocationInterceptionArgs args) { args.ProceedSetValue(); }