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
- ChameleonKey.cs
- XPathBinder.cs
- FormView.cs
- TouchDevice.cs
- DataKeyArray.cs
- ScriptingRoleServiceSection.cs
- ArcSegment.cs
- GifBitmapDecoder.cs
- DocComment.cs
- TrailingSpaceComparer.cs
- Script.cs
- SizeFConverter.cs
- WasHostedComPlusFactory.cs
- OneWayElement.cs
- InputProcessorProfiles.cs
- CodeTypeParameterCollection.cs
- InvalidEnumArgumentException.cs
- NonBatchDirectoryCompiler.cs
- DateTimePicker.cs
- LicenseContext.cs
- AssemblyAssociatedContentFileAttribute.cs
- EndpointDispatcherTable.cs
- TableLayoutPanelBehavior.cs
- ToolStripSeparator.cs
- DynamicQueryStringParameter.cs
- CurrencyManager.cs
- MgmtConfigurationRecord.cs
- EntityDataSourceChangedEventArgs.cs
- Trustee.cs
- unsafeIndexingFilterStream.cs
- WebPartAddingEventArgs.cs
- WebControl.cs
- WorkflowServiceOperationListItem.cs
- SqlOuterApplyReducer.cs
- FillErrorEventArgs.cs
- CatalogPartCollection.cs
- ListDictionary.cs
- WS2007HttpBindingCollectionElement.cs
- MetadataItemEmitter.cs
- ValueUnavailableException.cs
- EntityDataSourceWrapperCollection.cs
- PropertyValueChangedEvent.cs
- HtmlDocument.cs
- FontCacheUtil.cs
- TextEditorCopyPaste.cs
- TabPage.cs
- AnyAllSearchOperator.cs
- StructuralObject.cs
- ItemDragEvent.cs
- ProxyManager.cs
- Marshal.cs
- WebResourceAttribute.cs
- RootBuilder.cs
- TableCellCollection.cs
- TextRenderer.cs
- MetadataUtilsSmi.cs
- JournalEntry.cs
- RectConverter.cs
- SignatureDescription.cs
- MessageBodyMemberAttribute.cs
- BitVec.cs
- sortedlist.cs
- Matrix3DConverter.cs
- IArgumentProvider.cs
- Line.cs
- ListChangedEventArgs.cs
- DateTimeAutomationPeer.cs
- SrgsElement.cs
- ToolStripPanelCell.cs
- X509CertificateRecipientServiceCredential.cs
- DataGridRow.cs
- UiaCoreApi.cs
- XmlQualifiedName.cs
- InstanceData.cs
- TextBoxBaseDesigner.cs
- PrimarySelectionGlyph.cs
- Utility.cs
- XmlArrayItemAttribute.cs
- MappingMetadataHelper.cs
- SqlHelper.cs
- AutomationIdentifier.cs
- ValidatorCompatibilityHelper.cs
- Char.cs
- ObjectSpanRewriter.cs
- StylusEditingBehavior.cs
- UInt16Converter.cs
- ContextMenuAutomationPeer.cs
- ChannelFactory.cs
- NetworkInformationPermission.cs
- ToolStrip.cs
- QilVisitor.cs
- UrlEncodedParameterWriter.cs
- Stylus.cs
- CapabilitiesUse.cs
- BlockCollection.cs
- UdpDiscoveryEndpointElement.cs
- TrackBarRenderer.cs
- SQLInt16.cs
- JournalNavigationScope.cs
- ClaimTypes.cs