Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / ndp / clr / src / BCL / System / AppDomainManager.cs / 2 / 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 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; } } public virtual bool CheckSecuritySettings(SecurityState state) { return false; } internal static AppDomainManager CurrentAppDomainManager { get { return AppDomain.CurrentDomain.DomainManager; } } [MethodImplAttribute(MethodImplOptions.InternalCall)] internal extern void nRegisterWithHost(); [MethodImplAttribute(MethodImplOptions.InternalCall)] private static extern Assembly nGetEntryAssembly(); } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- PowerModeChangedEventArgs.cs
- AssemblyAssociatedContentFileAttribute.cs
- LinqDataSourceView.cs
- EmptyEnumerable.cs
- CodeGen.cs
- WsatAdminException.cs
- BlurEffect.cs
- DataGridViewHeaderCell.cs
- MouseGestureConverter.cs
- NullableDoubleAverageAggregationOperator.cs
- SafeProcessHandle.cs
- RadialGradientBrush.cs
- ScrollEventArgs.cs
- SoapHttpTransportImporter.cs
- XPathEmptyIterator.cs
- InheritedPropertyDescriptor.cs
- DataSourceXmlTextReader.cs
- EntityDataSourceValidationException.cs
- TraceRecords.cs
- SizeKeyFrameCollection.cs
- StringInfo.cs
- CommentEmitter.cs
- PixelFormats.cs
- GetIndexBinder.cs
- InvalidEnumArgumentException.cs
- SqlAliaser.cs
- querybuilder.cs
- CounterCreationData.cs
- TextRangeBase.cs
- SemanticTag.cs
- ConnectionManagementElementCollection.cs
- HtmlAnchor.cs
- TypeToken.cs
- EmptyStringExpandableObjectConverter.cs
- CellRelation.cs
- TableHeaderCell.cs
- XamlVector3DCollectionSerializer.cs
- UnmanagedMemoryStream.cs
- GPStream.cs
- FilteredXmlReader.cs
- NullableIntMinMaxAggregationOperator.cs
- UpdatableGenericsFeature.cs
- Globals.cs
- LinqDataSourceDisposeEventArgs.cs
- StringUtil.cs
- Mapping.cs
- DataMemberConverter.cs
- NavigationPropertyEmitter.cs
- WebPartConnectionsEventArgs.cs
- SmiMetaDataProperty.cs
- QueryOperationResponseOfT.cs
- EventWaitHandle.cs
- HttpCacheParams.cs
- ColumnCollection.cs
- BasicDesignerLoader.cs
- SqlRemoveConstantOrderBy.cs
- figurelengthconverter.cs
- DataRowExtensions.cs
- StateChangeEvent.cs
- BulletedList.cs
- AffineTransform3D.cs
- TextElementAutomationPeer.cs
- ScrollChrome.cs
- DataGridViewTopLeftHeaderCell.cs
- BindingBase.cs
- FusionWrap.cs
- EntityEntry.cs
- CircleHotSpot.cs
- CachedPathData.cs
- Point3DAnimation.cs
- DataContext.cs
- ViewLoader.cs
- ViewService.cs
- BamlLocalizableResource.cs
- TreeNode.cs
- RadioButtonStandardAdapter.cs
- DigitalSignatureProvider.cs
- AnnouncementService.cs
- DocumentSchemaValidator.cs
- PeerCollaboration.cs
- TreeNodeCollection.cs
- XpsResourceDictionary.cs
- DataSpaceManager.cs
- ModelItemDictionaryImpl.cs
- CharKeyFrameCollection.cs
- APCustomTypeDescriptor.cs
- MetadataArtifactLoaderFile.cs
- SoapObjectInfo.cs
- UnauthorizedWebPart.cs
- AccessDataSource.cs
- iisPickupDirectory.cs
- BrowserCapabilitiesCompiler.cs
- TextBounds.cs
- TraceUtils.cs
- SecurityBindingElementImporter.cs
- NotifyCollectionChangedEventArgs.cs
- EmbeddedMailObject.cs
- DataDesignUtil.cs
- CustomCredentialPolicy.cs
- InputBinding.cs