- Timestamp:
- 06/02/09 14:14:47 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.PluginInfrastructure/Runner.cs
r1936 r1990 30 30 public class Runner : MarshalByRefObject { 31 31 32 private Dictionary<string, Assembly> loadedAssemblies; 33 34 public Runner() { 35 loadedAssemblies = new Dictionary<string, Assembly>(); 36 AppDomain.CurrentDomain.AssemblyResolve += (sender, args) => { 37 if(loadedAssemblies.ContainsKey(args.Name)) { 38 return loadedAssemblies[args.Name]; 39 } 40 return null; 41 }; 42 } 43 32 44 public void LoadPlugins(ICollection<PluginInfo> plugins) { 33 45 //FileIOPermission fileperm = new FileIOPermission(FileIOPermissionAccess.AllAccess, @"C:\Program Files\HeuristicLab 3.0\plugins\"); … … 43 55 } 44 56 /// <summary> 45 /// Loads plugins from a byte array57 /// Loads assemblies from a byte array 46 58 /// </summary> 47 /// <param name="plugins">bytearray of all plugins that should be loaded</param> 48 public void LoadPlugins(ICollection<byte[]> plugins) { 49 foreach (byte[] plugin in plugins) { 50 Assembly.Load(plugin); 59 /// <param name="plugins">bytearray of all assemblies that should be loaded</param> 60 public void LoadAssemblies(ICollection<byte[]> assemblies) { 61 foreach (byte[] asm in assemblies) { 62 Assembly loadedAsm = Assembly.Load(asm); 63 RegisterLoadedAssembly(loadedAsm); 51 64 } 65 } 66 67 private void RegisterLoadedAssembly(Assembly asm) { 68 loadedAssemblies.Add(asm.FullName, asm); 69 loadedAssemblies.Add(asm.GetName().Name, asm); // add short name 52 70 } 53 71
Note: See TracChangeset
for help on using the changeset viewer.