EnumCheckAssemblyCollection.cs 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. /**
  2. * Namespace: System.Web
  3. * Class: EnumCheckAssembly
  4. *
  5. * Author: Gaurav Vaish
  6. * Contact: <[email protected]>
  7. * Status: 100%
  8. *
  9. * (C) Gaurav Vaish (2002)
  10. */
  11. using System;
  12. using System.IO;
  13. using System.Xml;
  14. using System.Collections;
  15. using System.Reflection;
  16. namespace Mono.Enumerations
  17. {
  18. public class EnumCheckAssemblyCollection: IEnumerable
  19. {
  20. public string ConfigFile = "assemblies.xml";
  21. private ArrayList assemblyList = new ArrayList();
  22. public EnumCheckAssemblyCollection()
  23. {
  24. }
  25. public void Parse()
  26. {
  27. Stream fStream;
  28. XmlReader reader;
  29. XmlDocument document;
  30. string url;
  31. fStream = new FileStream(ConfigFile, FileMode.Open, FileAccess.Read, FileShare.Read);
  32. reader = new XmlTextReader(fStream);
  33. document = new XmlDocument();
  34. document.Load(reader);
  35. if(document.DocumentElement != null)
  36. {
  37. if(document.DocumentElement.LocalName == "assemblies")
  38. {
  39. foreach(XmlNode pathNode in document.DocumentElement)
  40. {
  41. if(pathNode.NodeType == XmlNodeType.Element && pathNode.LocalName=="path")
  42. {
  43. url = pathNode.Attributes["url"].Value;
  44. while(url.EndsWith("\\") || url.EndsWith("/"))
  45. {
  46. url = url.Substring(0, url.Length - 1);
  47. }
  48. if(url == null || url.Length == 0)
  49. {
  50. continue;
  51. }
  52. foreach(XmlNode assemblyNode in pathNode.ChildNodes)
  53. {
  54. if(assemblyNode.LocalName == "assembly")
  55. {
  56. assemblyList.Add(url + "\\" + assemblyNode.Attributes["file"].Value);
  57. }
  58. }
  59. }
  60. }
  61. }
  62. }
  63. fStream.Close();
  64. }
  65. public IEnumerator GetEnumerator()
  66. {
  67. return assemblyList.GetEnumerator();
  68. }
  69. }
  70. }