private static object PrepareDataForSetup(string friendlyName, AppDomainSetup setup, Evidence providedSecurityInfo, Evidence creatorsSecurityInfo, IntPtr parentSecurityDescriptor, string securityZone, string[] propertyNames, string[] propertyValues) { byte[] array = null; bool flag = false; AppDomain.EvidenceCollection evidenceCollection = null; if (providedSecurityInfo != null || creatorsSecurityInfo != null) { HostSecurityManager hostSecurityManager = (AppDomain.CurrentDomain.DomainManager != null) ? AppDomain.CurrentDomain.DomainManager.HostSecurityManager : null; if (hostSecurityManager == null || !(hostSecurityManager.GetType() != typeof(HostSecurityManager)) || (hostSecurityManager.Flags & HostSecurityManagerOptions.HostAppDomainEvidence) != HostSecurityManagerOptions.HostAppDomainEvidence) { if (providedSecurityInfo != null && providedSecurityInfo.IsUnmodified && providedSecurityInfo.Target != null && providedSecurityInfo.Target is AppDomainEvidenceFactory) { providedSecurityInfo = null; flag = true; } if (creatorsSecurityInfo != null && creatorsSecurityInfo.IsUnmodified && creatorsSecurityInfo.Target != null && creatorsSecurityInfo.Target is AppDomainEvidenceFactory) { creatorsSecurityInfo = null; flag = true; } } } if (providedSecurityInfo != null || creatorsSecurityInfo != null) { evidenceCollection = new AppDomain.EvidenceCollection(); evidenceCollection.ProvidedSecurityInfo = providedSecurityInfo; evidenceCollection.CreatorsSecurityInfo = creatorsSecurityInfo; } if (evidenceCollection != null) { array = CrossAppDomainSerializer.SerializeObject(evidenceCollection).GetBuffer(); } AppDomainInitializerInfo appDomainInitializerInfo = null; if (setup != null && setup.AppDomainInitializer != null) { appDomainInitializerInfo = new AppDomainInitializerInfo(setup.AppDomainInitializer); } AppDomainSetup appDomainSetup = new AppDomainSetup(setup, false); return new object[] { friendlyName, appDomainSetup, parentSecurityDescriptor, flag, array, appDomainInitializerInfo, securityZone, propertyNames, propertyValues }; }