Example #1
0
 public void UnloadDomain()
 {
     if (currentDomain != null)
     {
         if (loader != null)
         {
             loader.DetachLayers();
             loader.UnloadLayers();
         }
         // Log.ND_TRACE("Unloading domain: " + currentDomain.FriendlyName);
         AppDomain.Unload(currentDomain);
     }
     currentDomain = null;
     loader        = null;
 }
Example #2
0
        public void LoadDomain()
        {
            var setup = new AppDomainSetup();

            setup.ApplicationBase = AssemblyLocator.ROOT_PATH;
            //ND.Log.ND_INFO("new appdomain in " + setup.ApplicationBase);

            currentDomain = AppDomain.CreateDomain(AssemblyLocator.DOMAIN_NAME, null, setup);
            //ND.Log.ND_INFO("New Domain created: " + currentDomain.ToString());

            currentDomain.AssemblyResolve += HandleAssemblyResolve;
            loader = (ProxyAssLoaderMarschal)currentDomain.CreateInstanceAndUnwrap(typeof(ProxyAssLoaderMarschal).Assembly.FullName, typeof(ProxyAssLoaderMarschal).FullName);
            loader.LoadFrom(AssemblyLocator.DOMAIN_PATH);

            // Log.ND_TRACE("Host domain: " + AppDomain.CurrentDomain.FriendlyName);
            // Log.ND_TRACE("child domain: " + currentDomain.FriendlyName);
            //Log.ND_TRACE("Application base is: " + currentDomain.SetupInformation.ApplicationBase);

            loader.LoadLayers();
            loader.AttachLayers();
        }