Beispiel #1
0
 void UnloadDomain()
 {
     AppDomain.Unload(domain);
     domain      = null;
     assemblyMap = null;
     GC.SuppressFinalize(this);
 }
Beispiel #2
0
 private void UnloadDomain()
 {
     AppDomain.Unload(this.domain);
     this.domain      = null;
     this.assemblyMap = null;
     GC.SuppressFinalize(this);
 }
			public RecyclableAppDomain (string name)
			{
				var info = new AppDomainSetup () {
					//appbase needs to allow loading this assembly, for remoting
					ApplicationBase = System.IO.Path.GetDirectoryName (typeof (TemplatingAppDomainRecycler).Assembly.Location),
					DisallowBindingRedirects = false,
					DisallowCodeDownload = true,
                    DisallowApplicationBaseProbing = false,
					ConfigurationFile = AppDomain.CurrentDomain.SetupInformation.ConfigurationFile,
				};
				domain = AppDomain.CreateDomain (name, null, info);
                var t = typeof(DomainAssemblyLoader);
                AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve;
                assemblyMap = (DomainAssemblyLoader) domain.CreateInstanceFromAndUnwrap(t.Assembly.Location, t.FullName);
                AppDomain.CurrentDomain.AssemblyResolve -= CurrentDomain_AssemblyResolve;
                domain.AssemblyResolve += assemblyMap.Resolve;// new DomainAssemblyLoader(assemblyMap).Resolve;
			}
Beispiel #4
0
            public RecyclableAppDomain(string name)
            {
                var info = new AppDomainSetup()
                {
                    //appbase needs to allow loading this assembly, for remoting
                    ApplicationBase                = System.IO.Path.GetDirectoryName(typeof(TemplatingAppDomainRecycler).Assembly.Location),
                    DisallowBindingRedirects       = false,
                    DisallowCodeDownload           = true,
                    DisallowApplicationBaseProbing = false,
                    ConfigurationFile              = AppDomain.CurrentDomain.SetupInformation.ConfigurationFile,
                };

                domain = AppDomain.CreateDomain(name, null, info);
                var t = typeof(DomainAssemblyLoader);

                AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve;
                assemblyMap = (DomainAssemblyLoader)domain.CreateInstanceFromAndUnwrap(t.Assembly.Location, t.FullName);
                AppDomain.CurrentDomain.AssemblyResolve -= CurrentDomain_AssemblyResolve;
                domain.AssemblyResolve += assemblyMap.Resolve;// new DomainAssemblyLoader(assemblyMap).Resolve;
            }
			void UnloadDomain ()
			{
				AppDomain.Unload (domain);
				domain = null;
				assemblyMap = null;
				GC.SuppressFinalize (this);
			}