dotgnu-pnet-commits
[Top][All Lists]
Advanced

[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





reply via email to

[Prev in Thread] Current Thread [Next in Thread]