Beispiel #1
0
        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);
        }
Beispiel #2
0
        public static AssemblyDescriptor GetNullAssemblyDescriptor(string name)
        {
            AssemblyDescriptor assemblyDescriptor = new AssemblyDescriptor();

            assemblyDescriptor.Name = name;
            return(assemblyDescriptor);
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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;
 }
Beispiel #6
0
        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;
        }
Beispiel #7
0
 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;
 }