private ArrayList BuildAssemblyDescriptors(string path, Type[] excludedTypes, Type[] attributes, Hashtable typeDescriptorDictionary) { ArrayList result = new ArrayList(); foreach (string file in Directory.GetFiles(path, "*.dll")) { Assembly assembly = null; try { assembly = Assembly.LoadFrom(file); } catch { } if (assembly != null) { AssemblyDescriptor assemblyDescriptor = new AssemblyDescriptor(); assemblyDescriptor.Build(assembly, excludedTypes, attributes, typeDescriptorDictionary); result.Add(assemblyDescriptor); } } foreach (string dir in Directory.GetDirectories(path)) { if (dir.EndsWith("_vti_cnf")) { continue; } result.AddRange(BuildAssemblyDescriptors(dir, excludedTypes, attributes, typeDescriptorDictionary)); } return(result); }
public static AssemblyDescriptor GetNullAssemblyDescriptor(string name) { AssemblyDescriptor assemblyDescriptor = new AssemblyDescriptor(); assemblyDescriptor.Name = name; return(assemblyDescriptor); }
private ArrayList BuildWebServceAssemblyDescriptors(string path, Hashtable typeDescriptorDictionary) { ArrayList result = new ArrayList(); try { foreach (string file in Directory.GetFiles(path, "*.asmx")) { string fileName = Path.GetFileName(file); Assembly assembly = null; try { assembly = WsdlHelper.GetAssemblyFromAsmx(fileName); if (assembly != null) { AssemblyDescriptor assemblyDescriptor = new AssemblyDescriptor(); assemblyDescriptor.Build(assembly, true, typeDescriptorDictionary); assemblyDescriptor.Name = fileName; assemblyDescriptor.IsWebServiceProxy = true; result.Add(assemblyDescriptor); } } catch (Exception ex) { AssemblyDescriptor assemblyDescriptor = AssemblyDescriptor.GetNullAssemblyDescriptor(fileName); assemblyDescriptor.Description = ex.ToString(); assemblyDescriptor.IsWebServiceProxy = true; result.Add(assemblyDescriptor); } } } catch (UnauthorizedAccessException) { } try { foreach (string dir in Directory.GetDirectories(path)) { if (dir.EndsWith("_vti_cnf")) { continue; } result.AddRange(BuildWebServceAssemblyDescriptors(dir, typeDescriptorDictionary)); } } catch (UnauthorizedAccessException) { } return(result); }
public void Build(Type[] excludedTypes, Type[] attributes, bool includeEmptyAssemblies) { Hashtable typeDescriptorDictionary = new Hashtable(); ArrayList result = new ArrayList(); foreach (string path in _assemblyPaths) { //Uri uri = new Uri( tmp ); //string path = uri.LocalPath; ArrayList tmpResult = BuildAssemblyDescriptors(path, excludedTypes, attributes, typeDescriptorDictionary); foreach (AssemblyDescriptor assemblyDescriptor1 in tmpResult) { bool found = false; foreach (AssemblyDescriptor assemblyDescriptor2 in result) { if (assemblyDescriptor1.FullName == assemblyDescriptor2.FullName) { found = true; break; } } if (!found) { result.Add(assemblyDescriptor1); } } if (!includeEmptyAssemblies) { for (int i = result.Count - 1; i >= 0; i--) { AssemblyDescriptor assemblyDescriptor = result[i] as AssemblyDescriptor; if (assemblyDescriptor.Types == null || assemblyDescriptor.Types.Length == 0) { result.RemoveAt(i); } } } } result.AddRange(BuildWebServceAssemblyDescriptors(_applicationRoot, typeDescriptorDictionary)); _assemblies = result.ToArray(typeof(AssemblyDescriptor)) as AssemblyDescriptor[]; //Detect ActionScript types too for our TypeDescriptors MapTypes(); }
public static AssemblyDescriptor GetNullAssemblyDescriptor(string name) { AssemblyDescriptor assemblyDescriptor = new AssemblyDescriptor(); assemblyDescriptor.Name = name; return assemblyDescriptor; }
private ArrayList BuildWebServceAssemblyDescriptors(string path, Hashtable typeDescriptorDictionary) { ArrayList result = new ArrayList(); try { foreach (string file in Directory.GetFiles(path, "*.asmx")) { string fileName = Path.GetFileName(file); Assembly assembly = null; try { assembly = WsdlHelper.GetAssemblyFromAsmx(fileName); if (assembly != null) { AssemblyDescriptor assemblyDescriptor = new AssemblyDescriptor(); assemblyDescriptor.Build(assembly, true, typeDescriptorDictionary); assemblyDescriptor.Name = fileName; assemblyDescriptor.IsWebServiceProxy = true; result.Add(assemblyDescriptor); } } catch (Exception ex) { AssemblyDescriptor assemblyDescriptor = AssemblyDescriptor.GetNullAssemblyDescriptor(fileName); assemblyDescriptor.Description = ex.ToString(); assemblyDescriptor.IsWebServiceProxy = true; result.Add(assemblyDescriptor); } } } catch (UnauthorizedAccessException) { } try { foreach (string dir in Directory.GetDirectories(path)) { if (dir.EndsWith("_vti_cnf")) continue; result.AddRange(BuildWebServceAssemblyDescriptors(dir, typeDescriptorDictionary)); } } catch (UnauthorizedAccessException) { } return result; }
private ArrayList BuildAssemblyDescriptors(string path, Type[] excludedTypes, Type[] attributes, Hashtable typeDescriptorDictionary) { ArrayList result = new ArrayList(); foreach (string file in Directory.GetFiles(path, "*.dll")) { Assembly assembly = null; try { assembly = Assembly.LoadFrom(file); } catch { } if (assembly != null) { AssemblyDescriptor assemblyDescriptor = new AssemblyDescriptor(); assemblyDescriptor.Build(assembly, excludedTypes, attributes, typeDescriptorDictionary); result.Add(assemblyDescriptor); } } foreach (string dir in Directory.GetDirectories(path)) { if (dir.EndsWith("_vti_cnf")) continue; result.AddRange(BuildAssemblyDescriptors(dir, excludedTypes, attributes, typeDescriptorDictionary)); } return result; }