Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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;
}
}
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.
//
// ==--==
//
// 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;
}
}
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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- XmlNodeChangedEventArgs.cs
- RelationshipManager.cs
- FontStyleConverter.cs
- DataServiceRequestArgs.cs
- WindowsScrollBarBits.cs
- XmlImplementation.cs
- RegexCapture.cs
- ColorAnimationUsingKeyFrames.cs
- DynamicObject.cs
- SqlServices.cs
- CopyCodeAction.cs
- RegexCapture.cs
- BatchParser.cs
- WebPartZoneCollection.cs
- ImageClickEventArgs.cs
- ElementAction.cs
- XmlValueConverter.cs
- NullableIntSumAggregationOperator.cs
- FileVersionInfo.cs
- FontResourceCache.cs
- ColumnResult.cs
- IndexedString.cs
- UserControlAutomationPeer.cs
- BoundingRectTracker.cs
- HandleCollector.cs
- WebServiceClientProxyGenerator.cs
- CompilerGeneratedAttribute.cs
- CharConverter.cs
- XmlAttributeCollection.cs
- ModelUIElement3D.cs
- EditingCoordinator.cs
- DragEventArgs.cs
- AnonymousIdentificationSection.cs
- Soap12ProtocolReflector.cs
- UncommonField.cs
- FileRecordSequenceCompletedAsyncResult.cs
- SendMailErrorEventArgs.cs
- MessageEncodingBindingElementImporter.cs
- BindingContext.cs
- CodeBinaryOperatorExpression.cs
- ExpressionReplacer.cs
- OrderedDictionaryStateHelper.cs
- HandlerFactoryCache.cs
- EllipseGeometry.cs
- ImageSource.cs
- SafeSerializationManager.cs
- Request.cs
- IntegerFacetDescriptionElement.cs
- WebPartTransformerCollection.cs
- FormatControl.cs
- XmlObjectSerializerWriteContext.cs
- StorageInfo.cs
- UnsafeNativeMethods.cs
- ReadingWritingEntityEventArgs.cs
- LayoutInformation.cs
- SqlColumnizer.cs
- ToolTip.cs
- listitem.cs
- serverconfig.cs
- Input.cs
- ToggleButtonAutomationPeer.cs
- Rotation3DKeyFrameCollection.cs
- GenericXmlSecurityToken.cs
- KeyedQueue.cs
- SaveFileDialog.cs
- WebDisplayNameAttribute.cs
- ForwardPositionQuery.cs
- ISCIIEncoding.cs
- WindowsIdentity.cs
- SafeCryptoHandles.cs
- HttpCapabilitiesBase.cs
- X509Certificate2Collection.cs
- IDReferencePropertyAttribute.cs
- BinaryFormatterWriter.cs
- WsdlContractConversionContext.cs
- FixedPageStructure.cs
- SafeNativeMethods.cs
- DefaultValueTypeConverter.cs
- LocatorManager.cs
- HostingEnvironmentWrapper.cs
- SqlProviderServices.cs
- MimeObjectFactory.cs
- ReaderWriterLockWrapper.cs
- ClientSession.cs
- SQLGuidStorage.cs
- EFTableProvider.cs
- PageBuildProvider.cs
- MimeTypePropertyAttribute.cs
- ellipse.cs
- TextTrailingWordEllipsis.cs
- SystemParameters.cs
- _Win32.cs
- SafeSystemMetrics.cs
- ReadOnlyDataSourceView.cs
- IssuedSecurityTokenProvider.cs
- WebPartCollection.cs
- ListViewEditEventArgs.cs
- Win32PrintDialog.cs
- DataControlLinkButton.cs
- MemberAssignment.cs