**** Merged from MCS ****
[mono-project.git] / mcs / tools / EnumCheckAssemblyCollection.cs
blob470492c25b581bf6bb2082aed91c495b3121bb84
1 /**
2 * Namespace: System.Web
3 * Class: EnumCheckAssembly
5 * Author: Gaurav Vaish
6 * Contact: <gvaish@iitk.ac.in>
7 * Status: 100%
9 * (C) Gaurav Vaish (2002)
12 using System;
13 using System.IO;
14 using System.Xml;
15 using System.Collections;
16 using System.Reflection;
18 namespace Mono.Enumerations
20 public class EnumCheckAssemblyCollection: IEnumerable
22 public string ConfigFile = "assemblies.xml";
24 private ArrayList assemblyList = new ArrayList();
26 public EnumCheckAssemblyCollection()
30 public void Parse()
32 Stream fStream;
33 XmlReader reader;
34 XmlDocument document;
35 string url;
37 fStream = new FileStream(ConfigFile, FileMode.Open, FileAccess.Read, FileShare.Read);
38 reader = new XmlTextReader(fStream);
39 document = new XmlDocument();
40 document.Load(reader);
41 if(document.DocumentElement != null)
43 if(document.DocumentElement.LocalName == "assemblies")
45 foreach(XmlNode pathNode in document.DocumentElement)
47 if(pathNode.NodeType == XmlNodeType.Element && pathNode.LocalName=="path")
49 url = pathNode.Attributes["url"].Value;
50 while(url.EndsWith("\\") || url.EndsWith("/"))
52 url = url.Substring(0, url.Length - 1);
54 if(url == null || url.Length == 0)
56 continue;
58 foreach(XmlNode assemblyNode in pathNode.ChildNodes)
60 if(assemblyNode.LocalName == "assembly")
62 assemblyList.Add(url + "\\" + assemblyNode.Attributes["file"].Value);
69 fStream.Close();
72 public IEnumerator GetEnumerator()
74 return assemblyList.GetEnumerator();