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); } }
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(); }