Ejemplo n.º 1
0
        private static void HappyPath()
        {
            var ad  = AppDomains.Use("Container");
            var rlt = ad.Execute((pars) =>
            {
                Console.WriteLine(AppDomain.CurrentDomain.FriendlyName);

                LoadPlugin();

                return(pars[0]);
            }, "This is parameter");

            Console.WriteLine($"{AppDomain.CurrentDomain.FriendlyName}: {rlt.Result}");
            Console.ReadKey();

            AppDomains.Unload("Container");

            Console.WriteLine("Press any key to reload Container ...");
            Console.ReadKey();

            Thread th = new Thread(new ThreadStart(() =>
            {
                Thread.Sleep(2000);
                AppDomains.Use("Container");
            }));

            th.Start();
            Console.WriteLine("Requiring Container ...");
            ad = AppDomains.Require("Container");
            ad.Execute((pars) =>
            {
                Console.WriteLine("Container reload completed");
                LoadPlugin();
                return(null);
            });
            Console.WriteLine("Press any key to exit ...");
            Console.ReadKey();
        }