Ejemplo n.º 1
0
        public void BuildDocs(string AssemblyLocation, string SaveLocation)
        {
            //load up the files
            files = new AssemblyDocumenter.Files(AssemblyLocation, logger, log);
            //and now process the asm files
            System.Text.StringBuilder xmlDocIndex = new System.Text.StringBuilder("<html><head><title>Assembly Reflection Documentation</title></head><body>Assembly Reflection Documentation for: " + AssemblyLocation + "<br /><ol>");
            System.Text.StringBuilder xmlDoc      = new System.Text.StringBuilder("<?xml version=\"1.0\"?>");
            long filecount = files.AsmFiles.Count;

            if (files.AsmFiles.Count > 0)
            {
                xmlDocIndex.Append("<assemblies>");
                foreach (System.Reflection.Assembly assembly in files.AsmFiles)
                {
                    if (log)
                    {
                        logger.Log(Convert.ToString(filecount) + ") Processing:" + assembly.CodeBase + "\n");
                    }
                    xmlDoc.Append("<assembly codebase=\"" + assembly.CodeBase + "\" fullname=\"" + assembly.FullName + "\" gac=\"" + assembly.GlobalAssemblyCache + "\" location=\"" + assembly.Location + "\" displayname=\"" + assembly.ToString() + "\">");
                    try
                    {
                        foreach (System.Type type in assembly.GetTypes())
                        {
                            if (log)
                            {
                                logger.Log(Convert.ToString(filecount) + ") Processing:" + assembly.CodeBase + ":" + type.FullName + "\n");
                            }
                            xmlDoc.Append("<type name=\"" + type.FullName + "\" guid=\"" + type.GUID + "\">");
                            xmlDoc.Append("<constructors>");
                            if (log)
                            {
                                logger.Log(Convert.ToString(filecount) + ") Processing:" + assembly.CodeBase + ":" + type.FullName + ":Constructor Information\n");
                            }
                            foreach (System.Reflection.ConstructorInfo cinfo in type.GetConstructors())
                            {
                                xmlDoc.Append("<constructor name=\"" + cinfo.Name + "\">");
                                xmlDoc.Append(AddParameters(cinfo.GetParameters()));
                                xmlDoc.Append("</constructor>");
                            }
                            xmlDoc.Append("</constructors>");

                            if (log)
                            {
                                logger.Log(Convert.ToString(filecount) + ") Processing:" + assembly.CodeBase + ":" + type.FullName + ":Event Information\n");
                            }
                            xmlDoc.Append("<events>");
                            foreach (System.Reflection.EventInfo einfo in type.GetEvents())
                            {
                                xmlDoc.Append("<event handler=\"" + einfo.EventHandlerType.FullName + "\">");
                                xmlDoc.Append("<IsMulticast>" + einfo.IsMulticast + "</IsMulticast>");
                                xmlDoc.Append("<IsSpecialName>" + einfo.IsSpecialName + "</IsSpecialName>");
                                xmlDoc.Append("<RaiseMethod>");
                                xmlDoc.Append(AddMethod(einfo.GetRaiseMethod()));
                                xmlDoc.Append("</RaiseMethod>");
                                xmlDoc.Append("<RemoveMethod>");
                                xmlDoc.Append(AddMethod(einfo.GetRemoveMethod()));
                                xmlDoc.Append("</RemoveMethod>");
                                xmlDoc.Append("</event>");
                            }
                            xmlDoc.Append("</events>");

                            if (log)
                            {
                                logger.Log(Convert.ToString(filecount) + ") Processing:" + assembly.CodeBase + ":" + type.FullName + ":Method Information\n");
                            }
                            xmlDoc.Append(AddMethods(type.GetMethods()));
                            if (log)
                            {
                                logger.Log(Convert.ToString(filecount) + ") Processing:" + assembly.CodeBase + ":" + type.FullName + ":Member Information\n");
                            }
                            xmlDoc.Append(AddMembers(type.GetMembers()));

                            if (log)
                            {
                                logger.Log(Convert.ToString(filecount) + ") Processing:" + assembly.CodeBase + ":" + type.FullName + ":Property Information\n");
                            }
                            xmlDoc.Append(AddProperties(type.GetProperties()));

                            if (log)
                            {
                                logger.Log(Convert.ToString(filecount) + ") Processing:" + assembly.CodeBase + ":" + type.FullName + ":Interface Information\n");
                            }
                            xmlDoc.Append("<interfaces>");
                            foreach (System.Type IFace in type.GetInterfaces())
                            {
                                xmlDoc.Append("<interface name=\"" + IFace.FullName + "\"/>");
                            }
                            xmlDoc.Append("</interfaces>");

                            if (log)
                            {
                                logger.Log(Convert.ToString(filecount) + ") Processing:" + assembly.CodeBase + ":" + type.FullName + ":Other Information\n");
                            }
                            xmlDoc.Append("<other>");
                            xmlDoc.Append("<IsAbstract>" + type.IsAbstract + "</IsAbstract>");
                            xmlDoc.Append("<IsAnsiClass>" + type.IsAnsiClass + "</IsAnsiClass>");
                            xmlDoc.Append("<IsArray>" + type.IsArray + "</IsArray>");
                            xmlDoc.Append("<IsAutoClass>" + type.IsAutoClass + "</IsAutoClass>");
                            xmlDoc.Append("<IsAutoLayout>" + type.IsAutoLayout + "</IsAutoLayout>");
                            xmlDoc.Append("<IsByRef>" + type.IsByRef + "</IsByRef>");
                            xmlDoc.Append("<IsClass>" + type.IsClass + "</IsClass>");
                            xmlDoc.Append("<IsCOMObject>" + type.IsCOMObject + "</IsCOMObject>");
                            xmlDoc.Append("<IsContextful>" + type.IsContextful + "</IsContextful>");
                            xmlDoc.Append("<IsEnum>" + type.IsEnum + "</IsEnum>");
                            xmlDoc.Append("<IsExplicitLayout>" + type.IsExplicitLayout + "</IsExplicitLayout>");
                            xmlDoc.Append("<IsImport>" + type.IsImport + "</IsImport>");
                            xmlDoc.Append("<IsInterface>" + type.IsInterface + "</IsInterface>");
                            xmlDoc.Append("<IsLayoutSequential>" + type.IsLayoutSequential + "</IsLayoutSequential>");
                            xmlDoc.Append("<IsMarshalByRef>" + type.IsMarshalByRef + "</IsMarshalByRef>");
                            xmlDoc.Append("<IsNestedAssembly>" + type.IsNestedAssembly + "</IsNestedAssembly>");
                            xmlDoc.Append("<IsNestedFamANDAssem>" + type.IsNestedFamANDAssem + "</IsNestedFamANDAssem>");
                            xmlDoc.Append("<IsNestedFamily>" + type.IsNestedFamily + "</IsNestedFamily>");
                            xmlDoc.Append("<IsNestedFamORAssem>" + type.IsNestedFamORAssem + "</IsNestedFamORAssem>");
                            xmlDoc.Append("<IsNestedPrivate>" + type.IsNestedPrivate + "</IsNestedPrivate>");
                            xmlDoc.Append("<IsNestedPublic>" + type.IsNestedPublic + "</IsNestedPublic>");
                            xmlDoc.Append("<IsNotPublic>" + type.IsNotPublic + "</IsNotPublic>");
                            xmlDoc.Append("<IsPointer>" + type.IsPointer + "</IsPointer>");
                            xmlDoc.Append("<IsPrimitive>" + type.IsPrimitive + "</IsPrimitive>");
                            xmlDoc.Append("<IsPublic>" + type.IsPublic + "</IsPublic>");
                            xmlDoc.Append("<IsSealed>" + type.IsSealed + "</IsSealed>");
                            xmlDoc.Append("<IsSerializable>" + type.IsSerializable + "</IsSerializable>");
                            xmlDoc.Append("<IsSpecialName>" + type.IsSpecialName + "</IsSpecialName>");
                            xmlDoc.Append("<IsUnicodeClass>" + type.IsUnicodeClass + "</IsUnicodeClass>");
                            xmlDoc.Append("<IsValueType>" + type.IsValueType + "</IsValueType>");
                            if (type.IsArray)
                            {
                                xmlDoc.Append("<ArrayRank>" + type.GetArrayRank() + "</ArrayRank>");
                            }
                            xmlDoc.Append("</other>");
                            xmlDoc.Append("</type>");
                            if (log)
                            {
                                logger.Log(Convert.ToString(filecount) + ") Finished Processing:" + assembly.CodeBase + ":" + type.FullName + "\n");
                            }
                        }
                    }
                    catch (Exception e)
                    {
                        xmlDoc.Append("<error>" + assembly.FullName + "</error>");
                    }
                    xmlDoc.Append("</assembly>");
                    string newfile = (assembly.FullName).Substring(0, assembly.FullName.IndexOf(",")) + Convert.ToString(filecount);
                    SaveDoc(xmlDoc, SaveLocation + newfile + ".xml");
                    xmlDocIndex.Append("<li><a href=\"" + newfile + ".xml\">" + newfile + "</a></li>");
                    xmlDoc = new System.Text.StringBuilder("<?xml version=\"1.0\"?>");
                    filecount--;
                }
                xmlDocIndex.Append("</ol></body></html>");
                SaveDoc(xmlDocIndex, SaveLocation + "index.html");
            }
        }
Ejemplo n.º 2
0
        public void BuildDocs(string AssemblyLocation, string SaveLocation)
        {
            //load up the files
            files = new AssemblyDocumenter.Files(AssemblyLocation, logger, log);
            //and now process the asm files
            System.Text.StringBuilder xmlDocIndex = new System.Text.StringBuilder("<html><head><title>Assembly Reflection Documentation</title></head><body>Assembly Reflection Documentation for: " + AssemblyLocation + "<br /><ol>");
            System.Text.StringBuilder xmlDoc = new System.Text.StringBuilder("<?xml version=\"1.0\"?>");
            long filecount = files.AsmFiles.Count;
            if (files.AsmFiles.Count > 0)
            {
                xmlDocIndex.Append("<assemblies>");
                foreach (System.Reflection.Assembly assembly in files.AsmFiles)
                {
                    if (log) logger.Log(Convert.ToString(filecount) + ") Processing:" + assembly.CodeBase + "\n");
                    xmlDoc.Append("<assembly codebase=\"" + assembly.CodeBase + "\" fullname=\"" + assembly.FullName + "\" gac=\"" + assembly.GlobalAssemblyCache + "\" location=\"" + assembly.Location + "\" displayname=\"" + assembly.ToString() + "\">");
                    try
                    {
                        foreach (System.Type type in assembly.GetTypes())
                        {
                            if (log) logger.Log(Convert.ToString(filecount) + ") Processing:" + assembly.CodeBase + ":" + type.FullName + "\n");
                            xmlDoc.Append("<type name=\"" + type.FullName + "\" guid=\"" + type.GUID + "\">");
                            xmlDoc.Append("<constructors>");
                            if (log) logger.Log(Convert.ToString(filecount) + ") Processing:" + assembly.CodeBase + ":" + type.FullName + ":Constructor Information\n");
                            foreach (System.Reflection.ConstructorInfo cinfo in type.GetConstructors())
                            {
                                xmlDoc.Append("<constructor name=\"" + cinfo.Name + "\">");
                                xmlDoc.Append(AddParameters(cinfo.GetParameters()));
                                xmlDoc.Append("</constructor>");
                            }
                            xmlDoc.Append("</constructors>");

                            if (log) logger.Log(Convert.ToString(filecount) + ") Processing:" + assembly.CodeBase + ":" + type.FullName + ":Event Information\n");
                            xmlDoc.Append("<events>");
                            foreach (System.Reflection.EventInfo einfo in type.GetEvents())
                            {
                                xmlDoc.Append("<event handler=\"" + einfo.EventHandlerType.FullName + "\">");
                                xmlDoc.Append("<IsMulticast>" + einfo.IsMulticast + "</IsMulticast>");
                                xmlDoc.Append("<IsSpecialName>" + einfo.IsSpecialName + "</IsSpecialName>");
                                xmlDoc.Append("<RaiseMethod>");
                                xmlDoc.Append(AddMethod(einfo.GetRaiseMethod()));
                                xmlDoc.Append("</RaiseMethod>");
                                xmlDoc.Append("<RemoveMethod>");
                                xmlDoc.Append(AddMethod(einfo.GetRemoveMethod()));
                                xmlDoc.Append("</RemoveMethod>");
                                xmlDoc.Append("</event>");
                            }
                            xmlDoc.Append("</events>");

                            if (log) logger.Log(Convert.ToString(filecount) + ") Processing:" + assembly.CodeBase + ":" + type.FullName + ":Method Information\n");
                            xmlDoc.Append(AddMethods(type.GetMethods()));
                            if (log) logger.Log(Convert.ToString(filecount) + ") Processing:" + assembly.CodeBase + ":" + type.FullName + ":Member Information\n");
                            xmlDoc.Append(AddMembers(type.GetMembers()));

                            if (log) logger.Log(Convert.ToString(filecount) + ") Processing:" + assembly.CodeBase + ":" + type.FullName + ":Property Information\n");
                            xmlDoc.Append(AddProperties(type.GetProperties()));

                            if (log) logger.Log(Convert.ToString(filecount) + ") Processing:" + assembly.CodeBase + ":" + type.FullName + ":Interface Information\n");
                            xmlDoc.Append("<interfaces>");
                            foreach (System.Type IFace in type.GetInterfaces())
                                xmlDoc.Append("<interface name=\"" + IFace.FullName + "\"/>");
                            xmlDoc.Append("</interfaces>");

                            if (log) logger.Log(Convert.ToString(filecount) + ") Processing:" + assembly.CodeBase + ":" + type.FullName + ":Other Information\n");
                            xmlDoc.Append("<other>");
                            xmlDoc.Append("<IsAbstract>" + type.IsAbstract + "</IsAbstract>");
                            xmlDoc.Append("<IsAnsiClass>" + type.IsAnsiClass + "</IsAnsiClass>");
                            xmlDoc.Append("<IsArray>" + type.IsArray + "</IsArray>");
                            xmlDoc.Append("<IsAutoClass>" + type.IsAutoClass + "</IsAutoClass>");
                            xmlDoc.Append("<IsAutoLayout>" + type.IsAutoLayout + "</IsAutoLayout>");
                            xmlDoc.Append("<IsByRef>" + type.IsByRef + "</IsByRef>");
                            xmlDoc.Append("<IsClass>" + type.IsClass + "</IsClass>");
                            xmlDoc.Append("<IsCOMObject>" + type.IsCOMObject + "</IsCOMObject>");
                            xmlDoc.Append("<IsContextful>" + type.IsContextful + "</IsContextful>");
                            xmlDoc.Append("<IsEnum>" + type.IsEnum + "</IsEnum>");
                            xmlDoc.Append("<IsExplicitLayout>" + type.IsExplicitLayout + "</IsExplicitLayout>");
                            xmlDoc.Append("<IsImport>" + type.IsImport + "</IsImport>");
                            xmlDoc.Append("<IsInterface>" + type.IsInterface + "</IsInterface>");
                            xmlDoc.Append("<IsLayoutSequential>" + type.IsLayoutSequential + "</IsLayoutSequential>");
                            xmlDoc.Append("<IsMarshalByRef>" + type.IsMarshalByRef + "</IsMarshalByRef>");
                            xmlDoc.Append("<IsNestedAssembly>" + type.IsNestedAssembly + "</IsNestedAssembly>");
                            xmlDoc.Append("<IsNestedFamANDAssem>" + type.IsNestedFamANDAssem + "</IsNestedFamANDAssem>");
                            xmlDoc.Append("<IsNestedFamily>" + type.IsNestedFamily + "</IsNestedFamily>");
                            xmlDoc.Append("<IsNestedFamORAssem>" + type.IsNestedFamORAssem + "</IsNestedFamORAssem>");
                            xmlDoc.Append("<IsNestedPrivate>" + type.IsNestedPrivate + "</IsNestedPrivate>");
                            xmlDoc.Append("<IsNestedPublic>" + type.IsNestedPublic + "</IsNestedPublic>");
                            xmlDoc.Append("<IsNotPublic>" + type.IsNotPublic + "</IsNotPublic>");
                            xmlDoc.Append("<IsPointer>" + type.IsPointer + "</IsPointer>");
                            xmlDoc.Append("<IsPrimitive>" + type.IsPrimitive + "</IsPrimitive>");
                            xmlDoc.Append("<IsPublic>" + type.IsPublic + "</IsPublic>");
                            xmlDoc.Append("<IsSealed>" + type.IsSealed + "</IsSealed>");
                            xmlDoc.Append("<IsSerializable>" + type.IsSerializable + "</IsSerializable>");
                            xmlDoc.Append("<IsSpecialName>" + type.IsSpecialName + "</IsSpecialName>");
                            xmlDoc.Append("<IsUnicodeClass>" + type.IsUnicodeClass + "</IsUnicodeClass>");
                            xmlDoc.Append("<IsValueType>" + type.IsValueType + "</IsValueType>");
                            if (type.IsArray) xmlDoc.Append("<ArrayRank>" + type.GetArrayRank() + "</ArrayRank>");
                            xmlDoc.Append("</other>");
                            xmlDoc.Append("</type>");
                            if (log) logger.Log(Convert.ToString(filecount) + ") Finished Processing:" + assembly.CodeBase + ":" + type.FullName + "\n");
                        }
                    }
                    catch (Exception e)
                    {
                        xmlDoc.Append("<error>" + assembly.FullName + "</error>");
                    }
                    xmlDoc.Append("</assembly>");
                    string newfile = (assembly.FullName).Substring(0, assembly.FullName.IndexOf(",")) + Convert.ToString(filecount);
                    SaveDoc(xmlDoc, SaveLocation + newfile + ".xml");
                    xmlDocIndex.Append("<li><a href=\"" + newfile + ".xml\">" + newfile + "</a></li>");
                    xmlDoc = new System.Text.StringBuilder("<?xml version=\"1.0\"?>");
                    filecount--;
                }
                xmlDocIndex.Append("</ol></body></html>");
                SaveDoc(xmlDocIndex, SaveLocation + "index.html");
            }
        }