public AppDomain createAppDomain(string appDomainName, AppDomainSetup appDomainSetup) { try { if (DI.appDomainsControledByO2Kernel.ContainsKey(appDomainName)) { DI.log.error("in createAppDomain, appDomainName provided has already been used, appDomainNames must be unique: {0}", appDomainName); } else { DI.log.info("Creating AppDomain {0} with Base Directory {1}", appDomainName, appDomainSetup.ApplicationBase); // ensure target directory exits O2Kernel_Files.checkIfDirectoryExistsAndCreateIfNot(appDomainSetup.ApplicationBase); // give our appDomain full trust :) var permissionSet = new PermissionSet(PermissionState.Unrestricted); DI.appDomainsControledByO2Kernel.Add(appDomainName, this); //Create domain appDomain = AppDomain.CreateDomain(appDomainName, null, appDomainSetup, permissionSet); // appDomain.AssemblyResolve += new ResolveEventHandler(assemblyResolve); BaseDirectory = appDomain.BaseDirectory; return(appDomain); } } catch (Exception ex) { DI.log.ex(ex, "could not load createAppDomain: " + appDomainName); } return(null); }
public static string o2Temp2Dir(this string tempFolderName, bool appendRandomStringToFolderName) { if (tempFolderName.valid()) { if (appendRandomStringToFolderName) { return(PublicDI.config.getTempFolderInTempDirectory(tempFolderName)); } else { var tempFolder = Path.Combine(PublicDI.config.O2TempDir, tempFolderName); O2Kernel_Files.checkIfDirectoryExistsAndCreateIfNot(tempFolder); return(tempFolder); } } return(PublicDI.config.O2TempDir); }