示例#1
0
    /// <summary>
    /// Creates the initial domain.
    /// </summary>
    /// <param name="friendlyName">Name of the friendly.</param>
    /// <param name="securityInfo">The security info.</param>
    /// <param name="appDomainInfo">The AppDomain setup info.</param>
    /// <returns></returns>
    public static AppDomain CreateInitialDomain(string friendlyName, Evidence securityInfo, AppDomainSetup appDomainInfo)
    {
        if (AppDomain.CurrentDomain.DomainManager is PrimaryAppDomainManager)
        {
            return(null);
        }
        appDomainInfo = appDomainInfo ?? new AppDomainSetup();
        appDomainInfo.AppDomainManagerAssembly = typeof(PrimaryAppDomainManager).Assembly.FullName;
        appDomainInfo.AppDomainManagerType     = typeof(PrimaryAppDomainManager).FullName;
        var appDomain = AppDomainManager.CreateDomainHelper(friendlyName, securityInfo, appDomainInfo);

        ((PrimaryAppDomainManager)appDomain.DomainManager).SetPrimaryDomainToSelf();
        _primaryDomain = appDomain;
        return(appDomain);
    }