Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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 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
- InkPresenterAutomationPeer.cs
- MailHeaderInfo.cs
- TextTreeText.cs
- ValidationErrorEventArgs.cs
- SelectionRange.cs
- DefaultSettingsSection.cs
- DecoderBestFitFallback.cs
- RelationshipConstraintValidator.cs
- TraceShell.cs
- ParameterCollection.cs
- AbstractDataSvcMapFileLoader.cs
- SqlDataAdapter.cs
- MouseGestureValueSerializer.cs
- CodeRegionDirective.cs
- IdentityHolder.cs
- mda.cs
- MouseButtonEventArgs.cs
- TabItemAutomationPeer.cs
- ProjectionPruner.cs
- EncryptedType.cs
- XmlReaderSettings.cs
- FontUnitConverter.cs
- FormsAuthenticationTicket.cs
- OrderPreservingMergeHelper.cs
- DecoderExceptionFallback.cs
- HttpListenerRequest.cs
- RegexInterpreter.cs
- PointLight.cs
- TableCell.cs
- HighlightComponent.cs
- DataShape.cs
- HandleRef.cs
- StatusBarPanel.cs
- ValueUtilsSmi.cs
- WebPartConnectionsConnectVerb.cs
- RequestNavigateEventArgs.cs
- DataGridViewImageColumn.cs
- RectangleHotSpot.cs
- XmlSequenceWriter.cs
- SelectionRangeConverter.cs
- EllipseGeometry.cs
- OleStrCAMarshaler.cs
- WmfPlaceableFileHeader.cs
- BorderGapMaskConverter.cs
- InfoCardRequestException.cs
- UrlMapping.cs
- ImageIndexConverter.cs
- ItemsControl.cs
- WebPartMovingEventArgs.cs
- GenerateTemporaryTargetAssembly.cs
- GeneralTransform3DTo2D.cs
- ServiceOperationWrapper.cs
- PolyLineSegment.cs
- ProcessHostConfigUtils.cs
- RtfToken.cs
- EventLogPermission.cs
- RelatedPropertyManager.cs
- EventBindingService.cs
- FixedSOMImage.cs
- Registry.cs
- InfocardClientCredentials.cs
- CreateRefExpr.cs
- InputEventArgs.cs
- XmlWriterTraceListener.cs
- Pkcs9Attribute.cs
- RuleCache.cs
- DelegatedStream.cs
- HtmlImage.cs
- ResourceExpressionBuilder.cs
- GorillaCodec.cs
- WindowHelperService.cs
- StrokeDescriptor.cs
- OperationPickerDialog.cs
- MatrixStack.cs
- InteropDesigner.xaml.cs
- BaseServiceProvider.cs
- StateMachineWorkflowInstance.cs
- SystemFonts.cs
- ReflectTypeDescriptionProvider.cs
- WindowsTreeView.cs
- AssociationProvider.cs
- SoapAttributeOverrides.cs
- ObjectContextServiceProvider.cs
- UiaCoreTypesApi.cs
- TypedReference.cs
- Pen.cs
- IOException.cs
- GacUtil.cs
- RegexFCD.cs
- ConfigsHelper.cs
- SafeReadContext.cs
- TrustManager.cs
- ProfilePropertySettings.cs
- DeflateStreamAsyncResult.cs
- Button.cs
- DataTableTypeConverter.cs
- FileAuthorizationModule.cs
- CompareValidator.cs
- RegistrySecurity.cs
- Invariant.cs