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);
            }
        }
Exemple #2
0
        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);
            }
        }