internal void SetupFusionContext(IntPtr fusionContext, AppDomainSetup oldADS)
        {
            this.UpdateContextPropertyIfNeeded(LoaderInformation.ApplicationBaseValue, ApplicationBaseKey, null, fusionContext, oldADS);
            this.UpdateContextPropertyIfNeeded(LoaderInformation.PrivateBinPathValue, PrivateBinPathKey, null, fusionContext, oldADS);
            this.UpdateContextPropertyIfNeeded(LoaderInformation.DevPathValue, DeveloperPathKey, null, fusionContext, oldADS);
            this.UpdateBooleanContextPropertyIfNeeded(LoaderInformation.DisallowPublisherPolicyValue, DisallowPublisherPolicyKey, fusionContext, oldADS);
            this.UpdateBooleanContextPropertyIfNeeded(LoaderInformation.DisallowCodeDownloadValue, DisallowCodeDownloadKey, fusionContext, oldADS);
            this.UpdateBooleanContextPropertyIfNeeded(LoaderInformation.DisallowBindingRedirectsValue, DisallowBindingRedirectsKey, fusionContext, oldADS);
            this.UpdateBooleanContextPropertyIfNeeded(LoaderInformation.DisallowAppBaseProbingValue, DisallowAppBaseProbingKey, fusionContext, oldADS);
            if (this.UpdateContextPropertyIfNeeded(LoaderInformation.ShadowCopyFilesValue, ShadowCopyFilesKey, this.ShadowCopyFiles, fusionContext, oldADS))
            {
                if (this.Value[7] == null)
                {
                    this.ShadowCopyDirectories = this.BuildShadowCopyDirectories();
                }
                this.UpdateContextPropertyIfNeeded(LoaderInformation.ShadowCopyDirectoriesValue, ShadowCopyDirectoriesKey, null, fusionContext, oldADS);
            }
            this.UpdateContextPropertyIfNeeded(LoaderInformation.CachePathValue, CachePathKey, null, fusionContext, oldADS);
            this.UpdateContextPropertyIfNeeded(LoaderInformation.PrivateBinPathProbeValue, PrivateBinPathProbeKey, this.PrivateBinPathProbe, fusionContext, oldADS);
            this.UpdateContextPropertyIfNeeded(LoaderInformation.ConfigurationFileValue, ConfigurationFileKey, null, fusionContext, oldADS);
            UpdateByteArrayContextPropertyIfNeeded(this._ConfigurationBytes, (oldADS == null) ? null : oldADS.GetConfigurationBytes(), ConfigurationBytesKey, fusionContext);
            this.UpdateContextPropertyIfNeeded(LoaderInformation.ApplicationNameValue, ApplicationNameKey, this.ApplicationName, fusionContext, oldADS);
            this.UpdateContextPropertyIfNeeded(LoaderInformation.DynamicBaseValue, DynamicBaseKey, null, fusionContext, oldADS);
            StringBuilder builder = new StringBuilder();

            builder.Append(RuntimeEnvironment.GetRuntimeDirectoryImpl());
            builder.Append(RuntimeConfigurationFile);
            UpdateContextProperty(fusionContext, MachineConfigKey, builder.ToString());
            string hostBindingFile = RuntimeEnvironment.GetHostBindingFile();

            if ((hostBindingFile != null) || (oldADS != null))
            {
                UpdateContextProperty(fusionContext, HostBindingKey, hostBindingFile);
            }
        }
        internal void SetupFusionContext(IntPtr fusionContext)
        {
            String appbase = Value[(int)LoaderInformation.ApplicationBaseValue];

            if (appbase != null)
            {
                UpdateContextProperty(fusionContext, ApplicationBaseKey, appbase);
            }

            if (PrivateBinPath != null)
            {
                UpdateContextProperty(fusionContext, PrivateBinPathKey, PrivateBinPath);
            }

            if (DeveloperPath != null)
            {
                UpdateContextProperty(fusionContext, DeveloperPathKey, DeveloperPath);
            }

            if (DisallowPublisherPolicy)
            {
                UpdateContextProperty(fusionContext, DisallowPublisherPolicyKey, "true");
            }

            if (ShadowCopyFiles != null)
            {
                UpdateContextProperty(fusionContext, ShadowCopyFilesKey, ShadowCopyFiles);

                // If we are asking for shadow copy directories then default to
                // only to the ones that are in the private bin path.
                if (Value[(int)LoaderInformation.ShadowCopyDirectoriesValue] == null)
                {
                    ShadowCopyDirectories = BuildShadowCopyDirectories();
                }

                String shadowDirs = Value[(int)LoaderInformation.ShadowCopyDirectoriesValue];
                if (shadowDirs != null)
                {
                    UpdateContextProperty(fusionContext, ShadowCopyDirectoriesKey, shadowDirs);
                }
            }

            String cache = Value[(int)LoaderInformation.CachePathValue];

            if (cache != null)
            {
                UpdateContextProperty(fusionContext, CachePathKey, cache);
            }

            if (PrivateBinPathProbe != null)
            {
                UpdateContextProperty(fusionContext, PrivateBinPathProbeKey, PrivateBinPathProbe);
            }

            String config = Value[(int)LoaderInformation.ConfigurationFileValue];

            if (config != null)
            {
                UpdateContextProperty(fusionContext, ConfigurationFileKey, config);
            }

            if (ApplicationName != null)
            {
                UpdateContextProperty(fusionContext, ApplicationNameKey, ApplicationName);
            }

            String dynbase = Value[(int)LoaderInformation.DynamicBaseValue];

            if (dynbase != null)
            {
                UpdateContextProperty(fusionContext, DynamicBaseKey, dynbase);
            }

            // Always add the runtime configuration file to the appdomain
            StringBuilder configFile = new StringBuilder();

            configFile.Append(RuntimeEnvironment.GetRuntimeDirectoryImpl());
            configFile.Append(RuntimeConfigurationFile);
            UpdateContextProperty(fusionContext, MachineConfigKey, configFile.ToString());

            String hostBindingFile = RuntimeEnvironment.GetHostBindingFile();

            if (hostBindingFile != null)
            {
                UpdateContextProperty(fusionContext, HostBindingKey, hostBindingFile);
            }
        }
        internal void SetupFusionContext(IntPtr fusionContext)
        {
            string str = this.Value[0];

            if (str != null)
            {
                UpdateContextProperty(fusionContext, ApplicationBaseKey, str);
            }
            string str2 = this.Value[5];

            if (str2 != null)
            {
                UpdateContextProperty(fusionContext, PrivateBinPathKey, str2);
            }
            string str3 = this.Value[3];

            if (str3 != null)
            {
                UpdateContextProperty(fusionContext, DeveloperPathKey, str3);
            }
            if (this.DisallowPublisherPolicy)
            {
                UpdateContextProperty(fusionContext, DisallowPublisherPolicyKey, "true");
            }
            if (this.DisallowCodeDownload)
            {
                UpdateContextProperty(fusionContext, DisallowCodeDownloadKey, "true");
            }
            if (this.DisallowBindingRedirects)
            {
                UpdateContextProperty(fusionContext, DisallowBindingRedirectsKey, "true");
            }
            if (this.DisallowApplicationBaseProbing)
            {
                UpdateContextProperty(fusionContext, DisallowAppBaseProbingKey, "true");
            }
            if (this.ShadowCopyFiles != null)
            {
                UpdateContextProperty(fusionContext, ShadowCopyFilesKey, this.ShadowCopyFiles);
                if (this.Value[7] == null)
                {
                    this.ShadowCopyDirectories = this.BuildShadowCopyDirectories();
                }
                string str4 = this.Value[7];
                if (str4 != null)
                {
                    UpdateContextProperty(fusionContext, ShadowCopyDirectoriesKey, str4);
                }
            }
            string str5 = this.Value[9];

            if (str5 != null)
            {
                UpdateContextProperty(fusionContext, CachePathKey, str5);
            }
            if (this.PrivateBinPathProbe != null)
            {
                UpdateContextProperty(fusionContext, PrivateBinPathProbeKey, this.PrivateBinPathProbe);
            }
            string str6 = this.Value[1];

            if (str6 != null)
            {
                UpdateContextProperty(fusionContext, ConfigurationFileKey, str6);
            }
            if (this._ConfigurationBytes != null)
            {
                UpdateContextProperty(fusionContext, ConfigurationBytesKey, this._ConfigurationBytes);
            }
            if (this.ApplicationName != null)
            {
                UpdateContextProperty(fusionContext, ApplicationNameKey, this.ApplicationName);
            }
            string str7 = this.Value[2];

            if (str7 != null)
            {
                UpdateContextProperty(fusionContext, DynamicBaseKey, str7);
            }
            StringBuilder builder = new StringBuilder();

            builder.Append(RuntimeEnvironment.GetRuntimeDirectoryImpl());
            builder.Append(RuntimeConfigurationFile);
            UpdateContextProperty(fusionContext, MachineConfigKey, builder.ToString());
            string hostBindingFile = RuntimeEnvironment.GetHostBindingFile();

            if (hostBindingFile != null)
            {
                UpdateContextProperty(fusionContext, HostBindingKey, hostBindingFile);
            }
        }