Exemplo n.º 1
0
        public void InterfaceWrap()
        {
            String contents = "import AspectSharp.Tests.Classes in AspectSharp.Tests " +
                              " " +
                              " aspect MyAspect for [ assignableFrom(IPartiallyComplex) ] " +
                              "   " +
                              "   pointcut method|property(*)" +
                              "     advice(AspectSharp.Tests.Classes.LogInvocationInterceptor)" +
                              "   end" +
                              "   " +
                              " end ";

            AspectEngineBuilder builder = new AspectLanguageEngineBuilder(contents);
            AspectEngine        engine  = builder.Build();

            IPartiallyComplex instance = null;

            instance = engine.WrapInterface(typeof(IPartiallyComplex), new ComplexClass()) as IPartiallyComplex;

            instance.DoNothing();
            instance.DoSomething();

            String[] messages = LogInvocationInterceptor.Messages;
            Assert.AreEqual(2, messages.Length);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Shows interception of an interface method.
        /// </summary>
        private static void InterfaceInvocation()
        {
            Console.WriteLine("InterfaceInvocation");

            //Wraping the class which is compatible with the inteface.
            IAgatKiller agatKiller = _engine.WrapInterface(typeof(IAgatKiller), new Ronin()) as IAgatKiller;

            agatKiller.KillAgat("Demon's Castle", "Bleed Sword");
        }