Beispiel #1
0
        private static void DoWorkInShadowCopiedDomain()
        {
            var className = (string)AppDomain.CurrentDomain.GetData("ClassName");
            var arguments = (string[])AppDomain.CurrentDomain.GetData("Arguments");

            GenericPollerProcess process = new GenericPollerProcess(CreateUnityContainer());

            //execute
            GenericPollerProcessRun(process, className, arguments);
        }
Beispiel #2
0
 private static void GenericPollerProcessRun(GenericPollerProcess process, string className, string[] arguments)
 {
     try
     {
         process.Run(className, arguments);
     }
     catch (Exception ex)
     {
         Console.WriteLine(string.Format("Exception: {0}", ex.Message));
         Console.WriteLine(string.Format("StackTrace: {0}", ex.StackTrace));
     }
 }
Beispiel #3
0
 private static void StartPollerProcess(string className, string[] arguments, bool shadowCopy)
 {
     if (shadowCopy)
     {
         //start in new appDomain
         var appDomainSetup = new AppDomainSetup {
             ShadowCopyFiles = "true"
         };
         var appDomain = AppDomain.CreateDomain(AppDomain.CurrentDomain.FriendlyName, AppDomain.CurrentDomain.Evidence, appDomainSetup);
         appDomain.SetData("ClassName", className);
         appDomain.SetData("Arguments", arguments);
         appDomain.DoCallBack(new CrossAppDomainDelegate(DoWorkInShadowCopiedDomain));
     }
     else
     {
         //start in host appDomain
         var process = new GenericPollerProcess(CreateUnityContainer());
         GenericPollerProcessRun(process, className, arguments);
     }
 }