ModulesConfiguration.cs 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. //
  2. // System.Web.Configuration.ModulesConfiguration
  3. //
  4. // Authors:
  5. // Patrik Torstensson ([email protected])
  6. // Gonzalo Paniagua Javier ([email protected])
  7. //
  8. // (c) 2002 Ximian, Inc. (http://www.ximian.com)
  9. //
  10. using System;
  11. using System.Collections;
  12. namespace System.Web.Configuration
  13. {
  14. class ModulesConfiguration
  15. {
  16. ArrayList modules;
  17. public ModulesConfiguration () : this (null)
  18. {
  19. }
  20. public ModulesConfiguration (ModulesConfiguration parent)
  21. {
  22. if (parent != null)
  23. modules = new ArrayList (parent.modules);
  24. else
  25. modules = new ArrayList ();
  26. }
  27. public void Add (ModuleItem item)
  28. {
  29. modules.Add (item);
  30. }
  31. public ModuleItem Remove (string name)
  32. {
  33. int i = GetIndex (name);
  34. if (i == -1)
  35. return null;
  36. ModuleItem item = (ModuleItem) modules [i];
  37. modules.RemoveAt (i);
  38. return item;
  39. }
  40. public void Clear ()
  41. {
  42. modules.Clear ();
  43. }
  44. public HttpModuleCollection CreateCollection ()
  45. {
  46. HttpModuleCollection items = new HttpModuleCollection ();
  47. foreach (ModuleItem item in modules)
  48. items.AddModule (item.ModuleName, item.Create ());
  49. return items;
  50. }
  51. int GetIndex (string name)
  52. {
  53. int end = modules.Count;
  54. for (int i = 0; i < end; i++) {
  55. ModuleItem item = (ModuleItem) modules [i];
  56. if (item.IsMatch (name))
  57. return i;
  58. }
  59. return -1;
  60. }
  61. }
  62. }