Example #1
0
        public static void Main(string[] args)
        {
            var EntryAssembly = Assembly.Load("Crucifere");

            VegetableFactory factory        = new VegetableFactory();
            ProxyGenerator   proxyGenerator = new ProxyGenerator();

            while (true)
            {
                try
                {
                    IVegetable legume = factory.Provide();

                    //Exemple avec Classe
                    //legume = proxyGenerator.CreateClassProxy(legume.GetType(), new BasicInterceptor()) as IVegetable;
                    //legume = proxyGenerator.CreateInterfaceProxyWithTarget(legume, new MaskInterceptor()) as IVegetable;

                    //Exemple avec interface seule
                    //legume = proxyGenerator.CreateInterfaceProxyWithoutTarget(typeof(IVegetable),new BasicInterceptor()) as IVegetable;

                    Console.WriteLine("Legume:" + legume.GetNom());
                    legume.Prix = 12;

                    Console.WriteLine("\n");
                }
                catch (Exception e)
                {
                    Console.WriteLine("GROSS ERROR:" + e.Message);
                    Console.WriteLine(e.ToString());
                }
                Thread.Sleep(2000);
            }
        }
Example #2
0
        static void Main(string[] args)
        {
            // Génératin du proxy à chaque appel
            //AScenario scenario = new Scenario1();

            // Utilisation d'un proxy généré
            //AScenario scenario = new Scenario2();

            // Aucune utilisation de proxy
            //AScenario scenario = new Scenario3();

            // Comparatif des 3 scenarii
            AScenario scenario = new ScenarioMix();

            int counter = 0;

            while (counter++ < 1000)
            {
                IVegetable target;

                // Ici j'évite le topimachin et l'indigestion :)
                do
                {
                    target = new VegetableFactory().Provide();
                }while (target is Topinambour);

                scenario.Run(target);

                Thread.Sleep(1000);
            }

            scenario.DisplayAverageRunningTime();

            Console.Read();
        }