Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / clr / src / BCL / System / AppDomainManager.cs / 1 / AppDomainManager.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== // // An AppDomainManager gives a hosting application the chance to // participate in the creation and control the settings of new AppDomains. // namespace System { using System.Collections; using System.Globalization; using System.IO; using System.Reflection; using System.Runtime.CompilerServices; using System.Security; using System.Security.Permissions; using System.Security.Policy; using System.Threading; using System.Runtime.Hosting; [Flags] [System.Runtime.InteropServices.ComVisible(true)] public enum AppDomainManagerInitializationOptions { None = 0x0000, RegisterWithHost = 0x0001 } [SecurityPermissionAttribute(SecurityAction.LinkDemand, Flags=SecurityPermissionFlag.Infrastructure)] [SecurityPermissionAttribute(SecurityAction.InheritanceDemand, Flags=SecurityPermissionFlag.Infrastructure)] [System.Runtime.InteropServices.ComVisible(true)] public class AppDomainManager : MarshalByRefObject { public AppDomainManager () {} public virtual AppDomain CreateDomain (string friendlyName, Evidence securityInfo, AppDomainSetup appDomainInfo) { return CreateDomainHelper(friendlyName, securityInfo, appDomainInfo); } [SecurityPermissionAttribute(SecurityAction.LinkDemand, Flags=SecurityPermissionFlag.Infrastructure)] [SecurityPermissionAttribute(SecurityAction.Demand, ControlAppDomain = true)] protected static AppDomain CreateDomainHelper (string friendlyName, Evidence securityInfo, AppDomainSetup appDomainInfo) { if (friendlyName == null) throw new ArgumentNullException(Environment.GetResourceString("ArgumentNull_String")); // If evidence is provided, we check to make sure that is allowed. if (securityInfo != null) new SecurityPermission(SecurityPermissionFlag.ControlEvidence).Demand(); return AppDomain.nCreateDomain(friendlyName, appDomainInfo, securityInfo, securityInfo == null ? AppDomain.CurrentDomain.InternalEvidence : null, AppDomain.CurrentDomain.GetSecurityDescriptor()); } public virtual void InitializeNewDomain (AppDomainSetup appDomainInfo) { // By default, InitializeNewDomain does nothing. } private AppDomainManagerInitializationOptions m_flags = AppDomainManagerInitializationOptions.None; public AppDomainManagerInitializationOptions InitializationFlags { get { return m_flags; } set { m_flags = value; } } #if !FEATURE_PAL private ApplicationActivator m_appActivator = null; public virtual ApplicationActivator ApplicationActivator { get { if (m_appActivator == null) m_appActivator = new ApplicationActivator(); return m_appActivator; } } #endif //!FEATURE_PAL public virtual HostSecurityManager HostSecurityManager { get { return null; } } public virtual HostExecutionContextManager HostExecutionContextManager { get { // By default, the AppDomainManager returns the HostExecutionContextManager. return HostExecutionContextManager.GetInternalHostExecutionContextManager(); } } private Assembly m_entryAssembly = null; public virtual Assembly EntryAssembly { get { // The default AppDomainManager sets the EntryAssembly depending on whether the // AppDomain is a manifest application domain or not. In the first case, we parse // the application manifest to find out the entry point assembly and return that assembly. // In the second case, we maintain the old behavior by calling nGetEntryAssembly(). if (m_entryAssembly == null) { AppDomain domain = AppDomain.CurrentDomain; #if !FEATURE_PAL if (domain.IsDefaultAppDomain() && domain.ActivationContext != null) { ManifestRunner runner = new ManifestRunner(domain, domain.ActivationContext); m_entryAssembly = runner.EntryAssembly; } else #endif //!FEATURE_PAL m_entryAssembly = nGetEntryAssembly(); } return m_entryAssembly; } } internal static AppDomainManager CurrentAppDomainManager { get { return AppDomain.CurrentDomain.DomainManager; } } [MethodImplAttribute(MethodImplOptions.InternalCall)] internal extern void nRegisterWithHost(); [MethodImplAttribute(MethodImplOptions.InternalCall)] private static extern Assembly nGetEntryAssembly(); } }
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- LayoutEvent.cs
- TextMarkerSource.cs
- SoapAttributes.cs
- SortKey.cs
- ThumbAutomationPeer.cs
- TrackingDataItem.cs
- TimeManager.cs
- SafePEFileHandle.cs
- UserControlParser.cs
- IntPtr.cs
- MailMessage.cs
- HostSecurityManager.cs
- OperationDescriptionCollection.cs
- UserControl.cs
- DBSqlParserColumnCollection.cs
- HyperLinkColumn.cs
- DtdParser.cs
- ColumnHeaderConverter.cs
- columnmapkeybuilder.cs
- MembershipPasswordException.cs
- HeaderCollection.cs
- PropertyInformation.cs
- ACL.cs
- BuildManagerHost.cs
- Timer.cs
- StrokeNode.cs
- SqlCacheDependency.cs
- MetadataArtifactLoaderResource.cs
- TransactionCache.cs
- ServiceModelExtensionElement.cs
- OleDbParameterCollection.cs
- SizeF.cs
- AssemblyNameProxy.cs
- TrackingStringDictionary.cs
- WebPartTracker.cs
- InkCanvasInnerCanvas.cs
- StrongTypingException.cs
- MatchingStyle.cs
- odbcmetadatacollectionnames.cs
- contentDescriptor.cs
- ComContractElement.cs
- ScalarType.cs
- ObsoleteAttribute.cs
- GridViewCellAutomationPeer.cs
- DateTimeValueSerializer.cs
- OAVariantLib.cs
- ByteStreamMessageUtility.cs
- TimeIntervalCollection.cs
- SortDescriptionCollection.cs
- NullRuntimeConfig.cs
- ToolStripLabel.cs
- Point3DAnimationUsingKeyFrames.cs
- DependencyObjectValidator.cs
- MultipartContentParser.cs
- ExistsInCollection.cs
- LocalizedNameDescriptionPair.cs
- LayoutManager.cs
- FileUpload.cs
- SystemIPGlobalProperties.cs
- X509ScopedServiceCertificateElementCollection.cs
- TiffBitmapEncoder.cs
- TranslateTransform3D.cs
- GuidelineSet.cs
- MultiPropertyDescriptorGridEntry.cs
- AddInContractAttribute.cs
- ZipIOLocalFileHeader.cs
- MetadataItemEmitter.cs
- DateBoldEvent.cs
- XmlSchemaValidator.cs
- MinMaxParagraphWidth.cs
- VarRemapper.cs
- TCEAdapterGenerator.cs
- TemplateParser.cs
- DbConnectionHelper.cs
- ListViewItem.cs
- RoleManagerEventArgs.cs
- FunctionDescription.cs
- ExpressionServices.cs
- ResolveCriteria11.cs
- CallbackValidatorAttribute.cs
- ApplicationActivator.cs
- webclient.cs
- _SslStream.cs
- SessionViewState.cs
- HostingEnvironmentWrapper.cs
- DataGridViewCellMouseEventArgs.cs
- SiteMapPath.cs
- HttpHostedTransportConfiguration.cs
- ViewKeyConstraint.cs
- EntityDataSourceConfigureObjectContextPanel.cs
- WebSysDisplayNameAttribute.cs
- XmlDataDocument.cs
- CatalogZoneBase.cs
- CaseInsensitiveHashCodeProvider.cs
- RelationshipType.cs
- DirectionalLight.cs
- XPathScanner.cs
- SmtpTransport.cs
- XslUrlEditor.cs
- EntityParameter.cs