PluginFramework.AddIn.Core.Framework.CreateDomain C# (CSharp) Method

CreateDomain() public method

public CreateDomain ( IBundleContext context ) : AppDomain
context IBundleContext
return System.AppDomain
        public AppDomain CreateDomain(IBundleContext context)
        {
            string binpatch = Path.GetDirectoryName(context.Bundle.Location);
            AppDomainSetup info = new AppDomainSetup();
            DirectoryInfo dirinfo = new DirectoryInfo(binpatch);
            if (String.Equals(dirinfo.Name.ToLower(), "bin"))
            {
                info.ApplicationBase = dirinfo.Parent.FullName;
            }
            else
            {
                 info.ApplicationBase = binpatch;
            }

            if  (!String.IsNullOrEmpty(AppDomain.CurrentDomain.DynamicDirectory))
            {
                info.ShadowCopyDirectories = Path.Combine(info.ApplicationBase, @"cache");
                info.ShadowCopyFiles = "true";
               info.PrivateBinPath = binpatch;
            }

            string domainName = "Bundle-" + context.Bundle.Id.ToString().PadLeft(3, '0');
            AppDomain domain = AppDomain.CreateDomain(domainName, AppDomain.CurrentDomain.Evidence, info);
            Interlocked.Increment(ref this.bundleAppDomains);
            //Assembly[] asses = domain.GetAssemblies();
            return domain;
        }