/// <include file='doc\BatchParser.uex' path='docs/doc[@for="BatchTemplateParser.GetSourceReferences"]/*' /> /// <devdoc> /// </devdoc> internal SourceReference[] GetSourceReferences() { Hashtable curReferences = new Hashtable(SymbolHashCodeProvider.Default, SymbolEqualComparer.Default); // Create a SourceReference for each source file and add it the the hashtable foreach (string source in _sources) { curReferences[source] = new SourceReference(source); } for (int i = 0; i < _dependencies.Count; i++) { ArrayList deplist = (ArrayList)_dependencies[i]; SourceReference sr = (SourceReference)curReferences[((string)_sources[i])]; // Go through all the dependencies of the current SourceReference foreach (string dep in deplist) { // If the dependency is itself in the hashtable, add it as a // dependency of the SourceReference object. SourceReference srdep = (SourceReference)curReferences[dep]; if (srdep != null) { sr.AddDependency(srdep); } } } SourceReference[] result = new SourceReference[curReferences.Count]; { int k; IDictionaryEnumerator en; for (en = curReferences.GetEnumerator(), k = 0; en.MoveNext(); k++) { result[k] = (SourceReference)en.Value; } } return(result); }