Code:
/ DotNET / DotNET / 8.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
- RoutedEventHandlerInfo.cs
- WinEventTracker.cs
- StyleHelper.cs
- UITypeEditor.cs
- PersonalizationAdministration.cs
- EmptyEnumerable.cs
- TreePrinter.cs
- DtrList.cs
- SqlServer2KCompatibilityCheck.cs
- MsmqInputMessage.cs
- TransformedBitmap.cs
- VirtualDirectoryMappingCollection.cs
- RemoteWebConfigurationHostStream.cs
- XmlEnumAttribute.cs
- BasePattern.cs
- RestHandler.cs
- Metafile.cs
- ActivationServices.cs
- XmlSchemaGroup.cs
- UdpMessageProperty.cs
- IpcPort.cs
- basenumberconverter.cs
- ListViewDeletedEventArgs.cs
- TextServicesPropertyRanges.cs
- ButtonPopupAdapter.cs
- ColorAnimation.cs
- XmlWriter.cs
- DataSourceView.cs
- metadatamappinghashervisitor.cs
- WebPartTransformer.cs
- ArglessEventHandlerProxy.cs
- PerspectiveCamera.cs
- DataGridViewCellPaintingEventArgs.cs
- CodeDelegateCreateExpression.cs
- DrawingServices.cs
- datacache.cs
- FolderBrowserDialog.cs
- IntSecurity.cs
- NetDataContractSerializer.cs
- StyleHelper.cs
- ToolStripDropDown.cs
- WebPart.cs
- ResourceCategoryAttribute.cs
- ConfigurationException.cs
- ToolBar.cs
- OracleFactory.cs
- SchemaSetCompiler.cs
- CompilerGlobalScopeAttribute.cs
- CallContext.cs
- TextEditorMouse.cs
- ListSortDescription.cs
- JsonServiceDocumentSerializer.cs
- StructuredTypeEmitter.cs
- HatchBrush.cs
- Point3DAnimationUsingKeyFrames.cs
- DependsOnAttribute.cs
- _BasicClient.cs
- Unit.cs
- XsdBuilder.cs
- Transactions.cs
- IgnoreSection.cs
- ContactManager.cs
- VariableDesigner.xaml.cs
- BezierSegment.cs
- ScrollChrome.cs
- WaitForChangedResult.cs
- RolePrincipal.cs
- LongValidator.cs
- FormsAuthenticationModule.cs
- ZoneLinkButton.cs
- ScriptComponentDescriptor.cs
- FormViewRow.cs
- basecomparevalidator.cs
- UnitySerializationHolder.cs
- DoubleAnimationUsingPath.cs
- PrtTicket_Base.cs
- ExtenderControl.cs
- TypeHelpers.cs
- ToolStripArrowRenderEventArgs.cs
- UIAgentAsyncParams.cs
- TypeResolvingOptionsAttribute.cs
- AnnotationObservableCollection.cs
- IOException.cs
- UnsafeNativeMethods.cs
- Publisher.cs
- Normalization.cs
- CompositeCollectionView.cs
- _PooledStream.cs
- TextFormatterImp.cs
- X509Certificate.cs
- EmptyEnumerable.cs
- TypographyProperties.cs
- ExceptionUtil.cs
- MetadataUtil.cs
- ContainerParaClient.cs
- HostedElements.cs
- WindowsSolidBrush.cs
- LoadWorkflowByKeyAsyncResult.cs
- LoaderAllocator.cs
- FixedSOMTextRun.cs