You've already forked linux-packaging-mono
Imported Upstream version 4.0.0~alpha1
Former-commit-id: 806294f5ded97629b74c85c09952f2a74fe182d9
This commit is contained in:
145
external/referencesource/mscorlib/system/activationarguments.cs
vendored
Normal file
145
external/referencesource/mscorlib/system/activationarguments.cs
vendored
Normal file
@ -0,0 +1,145 @@
|
||||
// ==++==
|
||||
//
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
//
|
||||
// ==--==
|
||||
|
||||
using System.Diagnostics.Contracts;
|
||||
using System.Runtime.Versioning;
|
||||
using System.Security.Policy;
|
||||
|
||||
namespace System.Runtime.Hosting {
|
||||
[Serializable]
|
||||
[System.Runtime.InteropServices.ComVisible(true)]
|
||||
public sealed class ActivationArguments : EvidenceBase {
|
||||
private ActivationArguments () {}
|
||||
|
||||
// This boolean is used to smuggle the information about whether
|
||||
// AppDomainSetup was constructed from an ActivationContext.
|
||||
private bool m_useFusionActivationContext = false;
|
||||
internal bool UseFusionActivationContext {
|
||||
get {
|
||||
return m_useFusionActivationContext;
|
||||
}
|
||||
}
|
||||
|
||||
// This is used to indicate whether the instance is to be activated
|
||||
// during the new domain's initialization. CreateInstanceHelper sets
|
||||
// this flag to true; CreateDomainHelper never activates the application.
|
||||
private bool m_activateInstance = false;
|
||||
internal bool ActivateInstance {
|
||||
get {
|
||||
return m_activateInstance;
|
||||
}
|
||||
set {
|
||||
m_activateInstance = value;
|
||||
}
|
||||
}
|
||||
|
||||
private string m_appFullName;
|
||||
internal string ApplicationFullName {
|
||||
get {
|
||||
return m_appFullName;
|
||||
}
|
||||
}
|
||||
|
||||
private string[] m_appManifestPaths;
|
||||
internal string[] ApplicationManifestPaths {
|
||||
get {
|
||||
return m_appManifestPaths;
|
||||
}
|
||||
}
|
||||
|
||||
#if !FEATURE_PAL
|
||||
public ActivationArguments (ApplicationIdentity applicationIdentity) : this (applicationIdentity, null) {}
|
||||
public ActivationArguments (ApplicationIdentity applicationIdentity, string[] activationData) {
|
||||
if (applicationIdentity == null)
|
||||
throw new ArgumentNullException("applicationIdentity");
|
||||
Contract.EndContractBlock();
|
||||
|
||||
m_appFullName = applicationIdentity.FullName;
|
||||
m_activationData = activationData;
|
||||
}
|
||||
|
||||
public ActivationArguments (ActivationContext activationData) : this (activationData, null) {}
|
||||
[ResourceExposure(ResourceScope.None)]
|
||||
[ResourceConsumption(ResourceScope.Machine, ResourceScope.Machine)]
|
||||
public ActivationArguments (ActivationContext activationContext, string[] activationData) {
|
||||
if (activationContext == null)
|
||||
throw new ArgumentNullException("activationContext");
|
||||
Contract.EndContractBlock();
|
||||
|
||||
m_appFullName = activationContext.Identity.FullName;
|
||||
m_appManifestPaths = activationContext.ManifestPaths;
|
||||
m_activationData = activationData;
|
||||
m_useFusionActivationContext = true;
|
||||
}
|
||||
|
||||
[ResourceExposure(ResourceScope.Machine)]
|
||||
[ResourceConsumption(ResourceScope.Machine)]
|
||||
internal ActivationArguments (string appFullName, string[] appManifestPaths, string[] activationData) {
|
||||
if (appFullName == null)
|
||||
throw new ArgumentNullException("appFullName");
|
||||
Contract.EndContractBlock();
|
||||
|
||||
m_appFullName = appFullName;
|
||||
m_appManifestPaths = appManifestPaths;
|
||||
m_activationData = activationData;
|
||||
m_useFusionActivationContext = true;
|
||||
}
|
||||
|
||||
public ApplicationIdentity ApplicationIdentity {
|
||||
get {
|
||||
return new ApplicationIdentity(m_appFullName);
|
||||
}
|
||||
}
|
||||
|
||||
public ActivationContext ActivationContext {
|
||||
[ResourceExposure(ResourceScope.None)]
|
||||
[ResourceConsumption(ResourceScope.Machine, ResourceScope.Machine)]
|
||||
get {
|
||||
if (!UseFusionActivationContext)
|
||||
return null;
|
||||
|
||||
if (m_appManifestPaths == null)
|
||||
return new ActivationContext(new ApplicationIdentity(m_appFullName));
|
||||
else
|
||||
return new ActivationContext(new ApplicationIdentity(m_appFullName), m_appManifestPaths);
|
||||
}
|
||||
}
|
||||
#endif // !FEATURE_PAL
|
||||
|
||||
private string[] m_activationData;
|
||||
public string[] ActivationData {
|
||||
get {
|
||||
return m_activationData;
|
||||
}
|
||||
}
|
||||
|
||||
public override EvidenceBase Clone() {
|
||||
ActivationArguments clone = new ActivationArguments();
|
||||
|
||||
clone.m_useFusionActivationContext = m_useFusionActivationContext;
|
||||
clone.m_activateInstance = m_activateInstance;
|
||||
clone.m_appFullName = m_appFullName;
|
||||
|
||||
if (m_appManifestPaths != null) {
|
||||
clone.m_appManifestPaths = new string[m_appManifestPaths.Length];
|
||||
Array.Copy(m_appManifestPaths, clone.m_appManifestPaths, clone.m_appManifestPaths.Length);
|
||||
}
|
||||
|
||||
if (m_activationData != null) {
|
||||
clone.m_activationData = new string[m_activationData.Length];
|
||||
Array.Copy(m_activationData, clone.m_activationData, clone.m_activationData.Length);
|
||||
}
|
||||
|
||||
#if !FEATURE_PAL
|
||||
clone.m_activateInstance = m_activateInstance;
|
||||
clone.m_appFullName = m_appFullName;
|
||||
clone.m_useFusionActivationContext = m_useFusionActivationContext;
|
||||
#endif // !FEATURE_PAL
|
||||
|
||||
return clone;
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user