public void Process(AspectContext context) { var interfaceInjectionDefinitions = from ca in context.AdviceClassType.CustomAttributes where ca.IsAttributeOfType <AdviceInterfaceProxyAttribute>() select new { @interface = (TypeReference)ca.ConstructorArguments[0].Value }; foreach (var interfaceInjectionDefinition in interfaceInjectionDefinitions) { var interfaceReference = interfaceInjectionDefinition.@interface; //todo:: process other InterfaceProxyInjectionAttribute parameters var interfaceInjectionContext = new InterfaceInjectionContext { AspectContext = context, InterfaceDefinition = [email protected]() }; FillinInterfaceMembers(interfaceInjectionContext); //some validation _injector.Inject(interfaceInjectionContext); } }
public void Process(AspectContext context) { var adviceContexts = GetAdviceMethods(context.AdviceClassType).SelectMany(m => ProcessAdvice(m, context)).Where(ac => ac != null).ToList(); foreach (var adviceContext in adviceContexts) { _injector.Inject(adviceContext); } }