[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Dotgnu-pnet-commits] CVS: pnetlib/runtime/System CrossAppDomainDelegat
From: |
Rhys Weatherley <address@hidden> |
Subject: |
[Dotgnu-pnet-commits] CVS: pnetlib/runtime/System CrossAppDomainDelegate.cs,NONE,1.1 AppDomain.cs,1.10,1.11 _AppDomain.cs,1.1,1.2 |
Date: |
Fri, 28 Mar 2003 20:38:09 -0500 |
Update of /cvsroot/dotgnu-pnet/pnetlib/runtime/System
In directory subversions:/tmp/cvs-serv18774/runtime/System
Modified Files:
AppDomain.cs _AppDomain.cs
Added Files:
CrossAppDomainDelegate.cs
Log Message:
Implement the missing parts of the "AppDomain" class.
--- NEW FILE ---
/*
* CrossAppDomainDelegate.cs - Implementation of
* "System.CrossAppDomainDelegate".
*
* Copyright (C) 2003 Southern Storm Software, Pty Ltd.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
namespace System
{
#if !ECMA_COMPAT
public delegate void CrossAppDomainDelegate();
#endif // !ECMA_COMPAT
}; // namespace System
Index: AppDomain.cs
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnetlib/runtime/System/AppDomain.cs,v
retrieving revision 1.10
retrieving revision 1.11
diff -C2 -r1.10 -r1.11
*** AppDomain.cs 18 Mar 2003 10:53:15 -0000 1.10
--- AppDomain.cs 29 Mar 2003 01:38:07 -0000 1.11
***************
*** 2,6 ****
* AppDomain.cs - Implementation of the "System.AppDomain" class.
*
! * Copyright (C) 2001 Southern Storm Software, Pty Ltd.
*
* This program is free software; you can redistribute it and/or modify
--- 2,6 ----
* AppDomain.cs - Implementation of the "System.AppDomain" class.
*
! * Copyright (C) 2001, 2002, 2003 Southern Storm Software, Pty Ltd.
*
* This program is free software; you can redistribute it and/or modify
***************
*** 23,30 ****
--- 23,33 ----
using System.Security;
+ using System.Collections;
using System.Reflection;
using System.Globalization;
using System.Reflection.Emit;
+ using System.Runtime.Remoting;
using System.Security.Policy;
+ using System.Security.Principal;
public sealed class AppDomain : MarshalByRefObject, _AppDomain
***************
*** 32,95 ****
// Internal state.
private String friendlyName;
private static AppDomain currentDomain;
// Construct a new AppDomain instance.
- [TODO]
private AppDomain(String name)
! {
! friendlyName = name;
!
! // TODO: create the domain within the runtime engine.
! }
// Create a new application domain with a specified name.
! public static AppDomain CreateDomain(string friendlyName)
! {
! if(friendlyName == null)
! {
! throw new ArgumentNullException("friendlyName");
! }
! return new AppDomain(friendlyName);
! }
!
#if !ECMA_COMPAT
! // Load and execute a file containing an assembly.
! [TODO]
! public int ExecuteAssembly(String assemblyFile)
! {
! if(assemblyFile == null)
! {
! throw new ArgumentNullException("assemblyFile");
! }
! // TODO: load and execute the assembly.
! return 0;
! }
#endif
// Return a string representing the current instance.
public override String ToString()
! {
! return friendlyName;
! }
// Unload a specific application domain.
[TODO]
public static void Unload(AppDomain domain)
! {
! if(domain == null)
! {
! throw new ArgumentNullException("domain");
! }
! // TODO: unload the domain.
! }
// Get the friendly name associated with this application domain.
public String FriendlyName
! {
! get
! {
! return friendlyName;
! }
! }
// Event that is emitted when an assembly is loaded into this domain.
--- 35,129 ----
// Internal state.
private String friendlyName;
+ #if !ECMA_COMPAT
+ private Evidence evidence;
+ private AppDomainSetup setup;
+ private Hashtable items;
+ #endif
private static AppDomain currentDomain;
// Construct a new AppDomain instance.
private AppDomain(String name)
! {
! if(name == null)
! {
! throw new ArgumentNullException("name");
! }
! friendlyName = name;
! #if !ECMA_COMPAT
! setup = new AppDomainSetup();
! items = new Hashtable();
! #endif
! }
! #if !ECMA_COMPAT
! private AppDomain(String name, Evidence evidence, AppDomainSetup setup)
! {
! if(name == null)
! {
! throw new ArgumentNullException("name");
! }
! friendlyName = name;
! this.evidence = evidence;
! this.setup = setup;
! this.items = new Hashtable();
! }
! #endif
// Create a new application domain with a specified name.
! public static AppDomain CreateDomain(String friendlyName)
! {
! return new AppDomain(friendlyName);
! }
#if !ECMA_COMPAT
! public static AppDomain CreateDomain(String friendlyName,
!
Evidence securityInfo)
! {
! return new AppDomain(friendlyName, securityInfo,
! new
AppDomainSetup());
! }
! public static AppDomain CreateDomain(String friendlyName,
!
Evidence securityInfo,
!
AppDomainSetup info)
! {
! return new AppDomain(friendlyName,
securityInfo, info);
! }
! public static AppDomain CreateDomain(String friendlyName,
!
Evidence securityInfo,
!
String appBasePath,
!
String appRelativeSearchPath,
!
bool shadowCopyFiles)
! {
! AppDomainSetup setup = new AppDomainSetup();
! setup.ApplicationBase = appBasePath;
! setup.PrivateBinPath = appRelativeSearchPath;
! setup.ShadowCopyFiles =
shadowCopyFiles.ToString();
! return new AppDomain(friendlyName,
securityInfo, setup);
! }
#endif
// Return a string representing the current instance.
public override String ToString()
! {
! return friendlyName;
! }
// Unload a specific application domain.
[TODO]
public static void Unload(AppDomain domain)
! {
! if(domain == null)
! {
! throw new
ArgumentNullException("domain");
! }
! // TODO: unload the domain.
! }
// Get the friendly name associated with this application domain.
public String FriendlyName
! {
! get
! {
! return friendlyName;
! }
! }
// Event that is emitted when an assembly is loaded into this domain.
***************
*** 104,109 ****
#if !ECMA_COMPAT
// Get the current domain.
- [TODO]
public static AppDomain CurrentDomain
{
--- 138,151 ----
#if !ECMA_COMPAT
+ // Base directory used to resolve assemblies.
+ public String BaseDirectory
+ {
+ get
+ {
+ return setup.ApplicationBase;
+ }
+ }
+
// Get the current domain.
public static AppDomain CurrentDomain
{
***************
*** 112,117 ****
lock(typeof(AppDomain))
{
- // TODO - this is a temporary
hack until the
- // runtime engine has real app
domains.
if(currentDomain == null)
{
--- 154,157 ----
***************
*** 123,177 ****
}
! // Get the security evidence that was used to load the app domain.
! [TODO]
! public Evidence Evidence
{
get
{
! // TODO
! return null;
}
}
! // Event that is emitted to resolve assemblies.
! public event ResolveEventHandler AssemblyResolve;
!
! // Event that is emitted on process exit.
! public event EventHandler ProcessExit;
! // Event that is emitted to resolve resources.
! public event ResolveEventHandler ResourceResolve;
! // Event that is emitted to resolve types.
! public event ResolveEventHandler TypeResolve;
! // Get the assemblies in use by this domain.
! [TODO]
! public Assembly[] GetAssemblies()
{
! // TODO
! return new Assembly [0];
}
! // Create a new application domain.
! [TODO]
! public static AppDomain CreateDomain(String friendlyName,
!
Evidence evidence,
!
AppDomainSetup setup)
{
! if(friendlyName == null)
{
! throw new
ArgumentNullException("friendlyName");
}
! // TODO
! return new AppDomain(friendlyName);
}
// Create an instance of an assembly and unwrap its handle.
- [TODO]
public Object CreateInstanceAndUnwrap(String assemblyName, String
typeName)
{
! // TODO
! return null;
}
public Object CreateInstanceAndUnwrap(String assemblyName,
--- 163,242 ----
}
! // Base directory used to resolve dynamically-created assemblies.
! public String DynamicDirectory
{
get
{
! return setup.DynamicBase;
}
}
! // Get the security evidence for this application domain.
! public Evidence Evidence
! {
! get
! {
! return evidence;
! }
! }
! // Search path, relative to "BaseDirectory", for private assemblies.
! public String RelativeSearchPath
! {
! get
! {
! return setup.PrivateBinPath;
! }
! }
! // Determine if the assemblies in the application domain are shadow
copies.
! public bool ShadowCopyFiles
! {
! get
! {
! return (setup.ShadowCopyFiles ==
"true");
! }
! }
! // Get the setup information for this application domain.
! public AppDomainSetup SetupInformation
{
! get
! {
! return setup;
! }
}
! // Append a directory to the private path.
! public void AppendPrivatePath(String path)
{
! String previous = setup.PrivateBinPath;
! if(previous == null || previous == String.Empty)
{
! setup.PrivateBinPath = path;
}
! else
! {
! setup.PrivateBinPath =
! previous +
Environment.PathSeparatorChar + path;
! }
! }
!
! // Clear the private path.
! public void ClearPrivatePath()
! {
! setup.PrivateBinPath = String.Empty;
! }
!
! // Clear the shadow copy path.
! public void ClearShadowCopyPath()
! {
! setup.ShadowCopyDirectories = String.Empty;
}
// Create an instance of an assembly and unwrap its handle.
public Object CreateInstanceAndUnwrap(String assemblyName, String
typeName)
{
! return CreateInstance(assemblyName,
typeName).Unwrap();
}
public Object CreateInstanceAndUnwrap(String assemblyName,
***************
*** 179,184 ****
Object[] activationAttributes)
{
! // TODO
! return null;
}
public Object CreateInstanceAndUnwrap(String assemblyName,
--- 244,249 ----
Object[] activationAttributes)
{
! return CreateInstance(assemblyName, typeName,
!
activationAttributes).Unwrap();
}
public Object CreateInstanceAndUnwrap(String assemblyName,
***************
*** 192,199 ****
--- 257,321 ----
Evidence securityAttributes)
{
+ return CreateInstance(assemblyName, typeName,
ignoreCase,
+
bindingAttr, binder, args, culture,
+
activationAttributes,
+
securityAttributes).Unwrap();
+ }
+
+ // Create an instance of a type within this application domain.
+ public ObjectHandle CreateInstance(String assemblyName, String typeName)
+ {
+ return CreateInstance(assemblyName, typeName,
false,
+
BindingFlags.Default, null,
+ null,
null, null, null);
+ }
+ public ObjectHandle CreateInstance(String assemblyName, String typeName,
+ Object[]
activationAttributes)
+ {
+ return CreateInstance(assemblyName, typeName,
false,
+
BindingFlags.Default, null,
+ null,
null, activationAttributes, null);
+ }
+ [TODO]
+ public ObjectHandle CreateInstance(String assemblyName, String typeName,
+ bool
ignoreCase,
+
BindingFlags bindingAttr,
+ Binder
binder, Object[] args,
+
CultureInfo culture,
+ Object[]
activationAttributes,
+ Evidence
securityAttributes)
+ {
// TODO
return null;
}
+ // Create a remote instance of a type within this application domain.
+ public ObjectHandle CreateInstanceFrom(String assemblyName,
+
String typeName)
+ {
+ return CreateInstance(assemblyName, typeName);
+ }
+ public ObjectHandle CreateInstanceFrom(String assemblyName,
+
String typeName,
+
Object[] activationAttributes)
+ {
+ return CreateInstance(assemblyName, typeName,
+
activationAttributes);
+ }
+ public ObjectHandle CreateInstanceFrom(String assemblyName,
+
String typeName,
+ bool
ignoreCase,
+
BindingFlags bindingAttr,
+
Binder binder, Object[] args,
+
CultureInfo culture,
+
Object[] activationAttributes,
+
Evidence securityAttributes)
+ {
+ return CreateInstance(assemblyName, typeName,
ignoreCase,
+
bindingAttr, binder, args, culture,
+
activationAttributes,
+
securityAttributes);
+ }
+
// Define a dynamic assembly builder within this domain.
public AssemblyBuilder DefineDynamicAssembly
***************
*** 295,304 ****
}
! // Set the cache path.
[TODO]
! public void SetCachePath(String s)
{
// TODO
}
#endif // !ECMA_COMPAT
--- 417,587 ----
}
! // Execute a delegate in a foreign application domain.
[TODO]
! public void DoCallBack(CrossAppDomainDelegate theDelegate)
! {
! // TODO
! }
!
! // Execute a particular assembly within this application domain.
! public int ExecuteAssembly(String assemblyFile)
{
+ return ExecuteAssembly(assemblyFile, null,
null);
+ }
+ public int ExecuteAssembly(String assemblyFile, Evidence
assemblySecurity)
+ {
+ return ExecuteAssembly(assemblyFile,
assemblySecurity, null);
+ }
+ [TODO]
+ public int ExecuteAssembly(String assemblyFile, Evidence
assemblySecurity,
+ String[] args)
+ {
+ if(assemblyFile == null)
+ {
+ throw new
ArgumentNullException("assemblyFile");
+ }
// TODO
+ return 0;
+ }
+
+ // Get a list of all assemblies in this application domain.
+ [TODO]
+ public Assembly[] GetAssemblies()
+ {
+ // TODO
+ return new Assembly [0];
+ }
+
+ // Fetch the object associated with a particular data name.
+ public Object GetData(String name)
+ {
+ return items[name];
+ }
+
+ // Give the application domain an infinite lifetime service.
+ public override Object InitializeLifetimeService()
+ {
+ // Always returns null.
+ return null;
+ }
+
+ // Load an assembly into this application domain by name.
+ public Assembly Load(AssemblyName assemblyRef)
+ {
+ return Load(assemblyRef, null);
+ }
+ public Assembly Load(AssemblyName assemblyRef, Evidence
assemblySecurity)
+ {
+ if(assemblyRef == null)
+ {
+ throw new
ArgumentNullException("assemblyRef");
+ }
+ if(assemblyRef.CodeBase != null &&
+ assemblyRef.CodeBase.Length > 0)
+ {
+ return
Assembly.LoadFrom(assemblyRef.CodeBase);
+ }
+ else
+ {
+ return Assembly.Load(assemblyRef.Name);
+ }
+ }
+
+ // Load an assembly into this application domain by string name.
+ public Assembly Load(String assemblyString)
+ {
+ return Load(assemblyString, null);
+ }
+ public Assembly Load(String assemblyString, Evidence assemblySecurity)
+ {
+ return Assembly.Load(assemblyString);
+ }
+
+ // Load an assembly into this application domain by explicit definition.
+ public Assembly Load(byte[] rawAssembly)
+ {
+ return Load(rawAssembly, null, null,
+
Assembly.GetCallingAssembly());
+ }
+ public Assembly Load(byte[] rawAssembly, byte[] rawSymbolStore)
+ {
+ return Load(rawAssembly, rawSymbolStore, null,
+
Assembly.GetCallingAssembly());
+ }
+ public Assembly Load(byte[] rawAssembly, byte[] rawSymbolStore,
+ Evidence assemblySecurity)
+ {
+ return Load(rawAssembly, rawSymbolStore,
assemblySecurity,
+
Assembly.GetCallingAssembly());
+ }
+ private Assembly Load(byte[] rawAssembly, byte[] rawSymbolStore,
+ Evidence assemblySecurity,
Assembly caller)
+ {
+ if(rawAssembly == null)
+ {
+ throw new
ArgumentNullException("rawAssembly");
+ }
+ int error;
+ Assembly assembly = Assembly.LoadFromBytes
+ (rawAssembly, out error, caller);
+ if(error == Assembly.LoadError_OK)
+ {
+ return assembly;
+ }
+ else
+ {
+ Assembly.ThrowLoadError("raw bytes",
error);
+ return null;
+ }
+ }
+
+ // Set policy information for this application domain.
+ public void SetAppDomainPolicy(PolicyLevel domainPolicy)
+ {
+ // Nothing to do here: we don't use such
policies.
+ }
+
+ // Set the cache location for shadow copied assemblies.
+ public void SetCachePath(String s)
+ {
+ setup.CachePath = s;
}
+
+
+ // Set a data item on this application domain.
+ public void SetData(String name, Object data)
+ {
+ items[name] = data;
+ }
+
+ // Set the policy for principals.
+ public void SetPrincipalPolicy(PrincipalPolicy policy)
+ {
+ // Nothing to do here: we don't use such
policies.
+ }
+
+ // Set the location of the shadow copy directory.
+ public void SetShadowCopyPath(String s)
+ {
+ setup.ShadowCopyDirectories = s;
+ }
+
+ // Set the default principal object for a thread.
+ public void SetThreadPrincipal(IPrincipal principal)
+ {
+ // Nothing to do here: we don't use such
principals.
+ }
+
+ // Event that is emitted to resolve assemblies.
+ public event ResolveEventHandler AssemblyResolve;
+
+ // Event that is emitted on process exit.
+ public event EventHandler ProcessExit;
+
+ // Event that is emitted to resolve resources.
+ public event ResolveEventHandler ResourceResolve;
+
+ // Event that is emitted to resolve types.
+ public event ResolveEventHandler TypeResolve;
#endif // !ECMA_COMPAT
Index: _AppDomain.cs
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnetlib/runtime/System/_AppDomain.cs,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -r1.1 -r1.2
*** _AppDomain.cs 6 Dec 2001 04:40:42 -0000 1.1
--- _AppDomain.cs 29 Mar 2003 01:38:07 -0000 1.2
***************
*** 2,6 ****
* _AppDomain.cs - Implementation of the "System._AppDomain" interface.
*
! * Copyright (C) 2001 Southern Storm Software, Pty Ltd.
*
* This program is free software; you can redistribute it and/or modify
--- 2,6 ----
* _AppDomain.cs - Implementation of the "System._AppDomain" interface.
*
! * Copyright (C) 2001, 2003 Southern Storm Software, Pty Ltd.
*
* This program is free software; you can redistribute it and/or modify
***************
*** 22,28 ****
--- 22,41 ----
{
+ using System.Reflection;
+ using System.Reflection.Emit;
+ using System.Globalization;
+ using System.Runtime.InteropServices;
+ using System.Runtime.Remoting;
+ using System.Security;
+ using System.Security.Policy;
+ using System.Security.Principal;
+
#if ECMA_COMPAT
+ [CLSCompliant(false)]
internal
#else
+ [CLSCompliant(false)]
+ [Guid("")]
+ [InterfaceType(ComInterfaceType.InterfaceIsDual)]
public
#endif
***************
*** 40,43 ****
--- 53,219 ----
// Event that is emitted when an exception is unhandled by the domain.
event UnhandledExceptionEventHandler UnhandledException;
+
+ #if !ECMA_COMPAT
+
+ // Base directory used to resolve assemblies.
+ String BaseDirectory { get; }
+
+ // Base directory used to resolve dynamically-created assemblies.
+ String DynamicDirectory { get; }
+
+ // Get the security evidence for this application domain.
+ Evidence Evidence { get; }
+
+ // Search path, relative to "BaseDirectory", for private assemblies.
+ String RelativeSearchPath { get; }
+
+ // Determine if the assemblies in the application domain are shadow
copies.
+ bool ShadowCopyFiles { get; }
+
+ // Append a directory to the private path.
+ void AppendPrivatePath(String path);
+
+ // Clear the private path.
+ void ClearPrivatePath();
+
+ // Clear the shadow copy path.
+ void ClearShadowCopyPath();
+
+ // Create an instance of a type within this application domain.
+ ObjectHandle CreateInstance(String assemblyName, String typeName);
+ ObjectHandle CreateInstance(String assemblyName, String typeName,
+ Object[]
activationAttributes);
+ ObjectHandle CreateInstance(String assemblyName, String typeName,
+ bool
ignoreCase, BindingFlags bindingAttr,
+ Binder binder,
Object[] args,
+ CultureInfo
culture,
+ Object[]
activationAttributes,
+ Evidence
securityAttributes);
+
+ // Create a remote instance of a type within this application domain.
+ ObjectHandle CreateInstanceFrom(String assemblyName, String typeName);
+ ObjectHandle CreateInstanceFrom(String assemblyName, String typeName,
+ Object[]
activationAttributes);
+ ObjectHandle CreateInstanceFrom(String assemblyName, String typeName,
+ bool
ignoreCase, BindingFlags bindingAttr,
+ Binder
binder, Object[] args,
+ CultureInfo
culture,
+ Object[]
activationAttributes,
+ Evidence
securityAttributes);
+
+ // Define a dynamic assembly within this application domain.
+ AssemblyBuilder DefineDynamicAssembly
+ (AssemblyName name, AssemblyBuilderAccess
access);
+ AssemblyBuilder DefineDynamicAssembly
+ (AssemblyName name, AssemblyBuilderAccess
access,
+ Evidence evidence);
+ AssemblyBuilder DefineDynamicAssembly
+ (AssemblyName name, AssemblyBuilderAccess
access,
+ String dir);
+ AssemblyBuilder DefineDynamicAssembly
+ (AssemblyName name, AssemblyBuilderAccess
access,
+ String dir, Evidence evidence);
+ AssemblyBuilder DefineDynamicAssembly
+ (AssemblyName name, AssemblyBuilderAccess
access,
+ PermissionSet requiredPermissions,
+ PermissionSet optionalPermissions,
+ PermissionSet refusedPersmissions);
+ AssemblyBuilder DefineDynamicAssembly
+ (AssemblyName name, AssemblyBuilderAccess
access,
+ Evidence evidence, PermissionSet
requiredPermissions,
+ PermissionSet optionalPermissions,
+ PermissionSet refusedPersmissions);
+ AssemblyBuilder DefineDynamicAssembly
+ (AssemblyName name, AssemblyBuilderAccess
access,
+ String dir, PermissionSet requiredPermissions,
+ PermissionSet optionalPermissions,
+ PermissionSet refusedPersmissions);
+ AssemblyBuilder DefineDynamicAssembly
+ (AssemblyName name, AssemblyBuilderAccess
access,
+ String dir, Evidence evidence,
+ PermissionSet requiredPermissions,
+ PermissionSet optionalPermissions,
+ PermissionSet refusedPersmissions);
+ AssemblyBuilder DefineDynamicAssembly
+ (AssemblyName name, AssemblyBuilderAccess
access,
+ String dir, Evidence evidence,
+ PermissionSet requiredPermissions,
+ PermissionSet optionalPermissions,
+ PermissionSet refusedPersmissions,
+ bool isSynchronized);
+
+ // Execute a delegate in a foreign application domain.
+ void DoCallBack(CrossAppDomainDelegate theDelegate);
+
+ // Execute a particular assembly within this application domain.
+ int ExecuteAssembly(String assemblyFile);
+ int ExecuteAssembly(String assemblyFile, Evidence assemblySecurity);
+ int ExecuteAssembly(String assemblyFile, Evidence assemblySecurity,
+ String[] args);
+
+ // Get a list of all assemblies in this application domain.
+ Assembly[] GetAssemblies();
+
+ // Fetch the object associated with a particular data name.
+ Object GetData(String name);
+
+ // Get an object for controlling the lifetime service.
+ Object GetLifetimeService();
+
+ // Give the application domain an infinite lifetime service.
+ Object InitializeLifetimeService();
+
+ // Load an assembly into this application domain by name.
+ Assembly Load(AssemblyName assemblyRef);
+ Assembly Load(AssemblyName assemblyRef, Evidence assemblySecurity);
+
+ // Load an assembly into this application domain by string name.
+ Assembly Load(String assemblyString);
+ Assembly Load(String assemblyString, Evidence assemblySecurity);
+
+ // Load an assembly into this application domain by explicit definition.
+ Assembly Load(byte[] rawAssembly);
+ Assembly Load(byte[] rawAssembly, byte[] rawSymbolStore);
+ Assembly Load(byte[] rawAssembly, byte[] rawSymbolStore,
+ Evidence assemblySecurity);
+
+ // Set policy information for this application domain.
+ void SetAppDomainPolicy(PolicyLevel domainPolicy);
+
+ // Set the cache location for shadow copied assemblies.
+ void SetCachePath(String s);
+
+ // Set a data item on this application domain.
+ void SetData(String name, Object data);
+
+ // Set the policy for principals.
+ void SetPrincipalPolicy(PrincipalPolicy policy);
+
+ // Set the location of the shadow copy directory.
+ void SetShadowCopyPath(String s);
+
+ // Set the default principal object for a thread.
+ void SetThreadPrincipal(IPrincipal principal);
+
+ // Methods that are normally in System.Object, but which must be
+ // redeclared here for some unknown reason.
+ bool Equals(Object obj);
+ int GetHashCode();
+ Type GetType();
+ String ToString();
+
+ // Event that is emitted when an assembly fails to resolve.
+ event ResolveEventHandler AssemblyResolve;
+
+ // Event that is emitted when a process exits within this domain.
+ event EventHandler ProcessExit;
+
+ // Event that is emitted when a resource fails to resolve.
+ event ResolveEventHandler ResourceResolve;
+
+ // Event that is emitted when a type fails to resolve.
+ event ResolveEventHandler TypeResolve;
+
+ #endif // !ECMA_COMPAT
}; // interface _AppDomain
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Dotgnu-pnet-commits] CVS: pnetlib/runtime/System CrossAppDomainDelegate.cs,NONE,1.1 AppDomain.cs,1.10,1.11 _AppDomain.cs,1.1,1.2,
Rhys Weatherley <address@hidden> <=
- Prev by Date:
[Dotgnu-pnet-commits] CVS: pnetlib/runtime/System/Security/Principal IIdentity.cs,NONE,1.1 IPrincipal.cs,NONE,1.1PrincipalPolicy.cs,NONE,1.1
- Next by Date:
[Dotgnu-pnet-commits] CVS: treecc ChangeLog,1.81,1.82 gen_cpp.c,1.4,1.5
- Previous by thread:
[Dotgnu-pnet-commits] CVS: pnetlib/runtime/System/Security/Principal IIdentity.cs,NONE,1.1 IPrincipal.cs,NONE,1.1PrincipalPolicy.cs,NONE,1.1
- Next by thread:
[Dotgnu-pnet-commits] CVS: treecc ChangeLog,1.81,1.82 gen_cpp.c,1.4,1.5
- Index(es):