class ModuleItem {
public string Name;
public Type Type;
- public IHttpModule Instance;
public ModuleItem (string name, Type type)
{
class ModulesConfiguration
{
- public ArrayList Modules;
+ ArrayList Modules;
+
+ private ModulesConfiguration ()
+ {
+ }
public ModulesConfiguration (ModulesConfiguration parent)
{
item_type = Type.GetType (type, true);
} catch (Exception e){
throw new HttpException (
- String.Format ("Failed to load module `{0}' from type `{1}'", name, type));
+ String.Format ("Failed to load module `{0}' from type `{1}'", name, type), e);
}
if (!typeof (IHttpModule).IsAssignableFrom (item_type))
Modules.Clear ();
}
- public void LoadModules (HttpApplication app)
+ public HttpModuleCollection LoadModules (HttpApplication app)
{
+ HttpModuleCollection coll = new HttpModuleCollection ();
foreach (ModuleItem item in Modules){
- item.Instance = (IHttpModule) Activator.CreateInstance (item.Type, true);
- item.Instance.Init (app);
+ IHttpModule module = (IHttpModule) Activator.CreateInstance (item.Type, true);
+ module.Init (app);
+ coll.AddModule (item.Name, module);
}
- }
- public void StopModules ()
- {
- foreach (ModuleItem item in Modules)
- item.Instance.Dispose ();
+ return coll;
}
}
}