deleted duplicate file
parent
70f283e089
commit
78f4f49965
|
@ -1,77 +0,0 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
using System.Text;
|
||||
using log4net;
|
||||
|
||||
namespace OpenSim.Grid.GridServer
|
||||
{
|
||||
public class GridModuleLoader<T>
|
||||
{
|
||||
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
||||
public Dictionary<string, Assembly> LoadedAssemblys = new Dictionary<string, Assembly>();
|
||||
|
||||
public List<T> PickupModules(string path)
|
||||
{
|
||||
DirectoryInfo dir = new DirectoryInfo(path);
|
||||
List<T> modules = new List<T>();
|
||||
|
||||
foreach (FileInfo fileInfo in dir.GetFiles("*.dll"))
|
||||
{
|
||||
List<T> foundModules = this.LoadModules(fileInfo.FullName);
|
||||
modules.AddRange(foundModules);
|
||||
}
|
||||
return modules;
|
||||
}
|
||||
|
||||
public List<T> LoadModules(string dllName)
|
||||
{
|
||||
List<T> modules = new List<T>();
|
||||
|
||||
Assembly pluginAssembly;
|
||||
if (!LoadedAssemblys.TryGetValue(dllName, out pluginAssembly))
|
||||
{
|
||||
try
|
||||
{
|
||||
pluginAssembly = Assembly.LoadFrom(dllName);
|
||||
LoadedAssemblys.Add(dllName, pluginAssembly);
|
||||
}
|
||||
catch (BadImageFormatException)
|
||||
{
|
||||
//m_log.InfoFormat("[MODULES]: The file [{0}] is not a module assembly.", e.FileName);
|
||||
}
|
||||
}
|
||||
|
||||
if (pluginAssembly != null)
|
||||
{
|
||||
try
|
||||
{
|
||||
foreach (Type pluginType in pluginAssembly.GetTypes())
|
||||
{
|
||||
if (pluginType.IsPublic)
|
||||
{
|
||||
if (!pluginType.IsAbstract)
|
||||
{
|
||||
if (pluginType.GetInterface(typeof(T).Name) != null)
|
||||
{
|
||||
modules.Add((T)Activator.CreateInstance(pluginType));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
m_log.ErrorFormat(
|
||||
"[MODULES]: Could not load types for [{0}]. Exception {1}", pluginAssembly.FullName, e);
|
||||
|
||||
// justincc: Right now this is fatal to really get the user's attention
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
return modules;
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue