コード例 #1
0
ファイル: AssembliesInfo.cs プロジェクト: Q42/ImmDoc.NET
        public void ReadMyAssemblyInfoFromXmlDocumentation(string xmlDocPath)
        {
            string xmlDocAbsolutePath = Path.GetFullPath(xmlDocPath);
            string assemblyName       = Utils.GetAssemblyNameFromXmlDocumentation(xmlDocAbsolutePath);

            if (assemblyName == null)
            {
                Logger.Warning("Wrong format of XML documentation file: " + xmlDocPath);

                return;
            }

            if (assemblies == null)
            {
                assemblies = new Dictionary <string, MyAssemblyInfo>();
            }

            if (assemblies.ContainsKey(assemblyName))
            {
                MyAssemblyInfo myAssemblyInfo = assemblies[assemblyName];

                myAssemblyInfo.ReadXmlDocumentation(xmlDocAbsolutePath);
            }
            else
            {
                Logger.Warning("(XML) Couldn't find assembly '{0}'.", assemblyName);
            }
        }
コード例 #2
0
ファイル: AssembliesInfo.cs プロジェクト: Q42/ImmDoc.NET
        public void ReadMyAssemblyInfoFromAssembly(string assemblyPath, List <string> excludedNamespaces)
        {
            try
            {
                string assemblyAbsolutePath = Path.GetFullPath(assemblyPath);
                string assemblyName         = AssemblyDefinition.ReadAssembly(assemblyAbsolutePath).Name.Name;

                MyAssemblyInfo myAssemblyInfo;

                if (assemblies == null)
                {
                    assemblies = new Dictionary <string, MyAssemblyInfo>();
                }

                if (!assemblies.ContainsKey(assemblyName))
                {
                    myAssemblyInfo = new MyAssemblyInfo(assemblyName, this);
                    assemblies.Add(assemblyName, myAssemblyInfo);
                }
                else
                {
                    myAssemblyInfo = assemblies[assemblyName];
                }

                myAssemblyInfo.ReadAssembly(assemblyAbsolutePath, excludedNamespaces);
            }
            catch (Exception exc)
            {
              #if DEBUG
                Logger.Warning("Couldn't process assembly '{0}'.\n{1}\n{2}", assemblyPath, exc.Message, Utils.SimplifyStackTrace(exc.StackTrace));
              #else
                Logger.Warning("Couldn't process assembly '{0}' ({1}).", assemblyPath, exc.Message);
              #endif
            }
        }
コード例 #3
0
        private void checkVersions()
        {
            // Check that web service version is as expected
            DesktopClient.CoolIt_Service.MyAssemblyInfo info = webService.WebServiceVersion();
            webServiceVersion = new MyAssemblyInfo(info.Major, info.Minor, info.Build, info.Revision);
            if (webServiceVersion.Major != WEB_SERVICE_MAJOR_VERSION || webServiceVersion.Minor != WEB_SERVICE_MINOR_VERSION)
            {
                string msg = string.Format("Unexpected Web Service Version. Expected {0}.{1}, found {2}.{3}",
                                           WEB_SERVICE_MAJOR_VERSION, WEB_SERVICE_MINOR_VERSION, webServiceVersion.Major, webServiceVersion.Minor);
                throw new Exception(msg);
            }

            // Check that web service is using the same version of Cryolib that we are
            info           = webService.CryolibVersion();
            cryolibVersion = new MyAssemblyInfo(info.Major, info.Minor, info.Build, info.Revision);
            MyAssemblyInfo myLibVersion = new MyAssemblyInfo();

            if (cryolibVersion.Major != myLibVersion.Major || cryolibVersion.Minor != myLibVersion.Minor)
            {
                string msg = string.Format("Local and Web Service versions of Cryolib do not match. Local = {0}.{1}, Web service = {2}.{3}",
                                           myLibVersion.Major, myLibVersion.Minor, cryolibVersion.Major, cryolibVersion.Minor);
                throw new Exception(msg);
            }

            myVersion = new MyAssemblyInfo(System.Reflection.Assembly.GetExecutingAssembly());
        }
コード例 #4
0
ファイル: AssembliesInfo.cs プロジェクト: Q42/ImmDoc.NET
        internal MyNamespaceInfo FindNamespace(string assemblyName, string namezpace)
        {
            MyAssemblyInfo myAssemblyInfo = FindAssembly(assemblyName);

            if (myAssemblyInfo == null)
            {
                return(null);
            }

            return(myAssemblyInfo.FindNamespace(namezpace));
        }
コード例 #5
0
ファイル: AssembliesInfo.cs プロジェクト: Q42/ImmDoc.NET
        public void ReadAdditionalDocumentation(string xmlDocPath)
        {
            string      xmlDocAbsolutePath = Path.GetFullPath(xmlDocPath);
            XmlDocument xmlDoc             = new XmlDocument();

            try
            {
                xmlDoc.Load(xmlDocAbsolutePath);
            }
            catch (XmlException)
            {
                Logger.Warning("Couldn't load file with additional documentation: '{0}'.", xmlDocAbsolutePath);
                return;
            }

            XmlNodeList assemblyNodes = xmlDoc.GetElementsByTagName("assembly");

            foreach (XmlNode assemblyNode in assemblyNodes)
            {
                XmlAttribute assemblyNameAttribute = assemblyNode.Attributes["name"];
                if (assemblyNameAttribute == null)
                {
                    Logger.Warning("Assembly element in additional documentation file doesn't contain required 'name' attribute.");
                    continue;
                }
                string assemblyName = assemblyNameAttribute.Value;

                string      assemblySummary      = "";
                XmlNodeList assemblySummaryNodes = assemblyNode.SelectNodes("summary");
                foreach (XmlNode assemblySummaryNode in assemblySummaryNodes)
                {
                    assemblySummary += assemblySummaryNode.InnerXml;
                }

                MyAssemblyInfo myAssemblyInfo = FindAssembly(assemblyName);
                if (myAssemblyInfo == null)
                {
                    Logger.Warning("Assembly named '{0}' couldn't be found.", assemblyName);
                    continue;
                }

                myAssemblyInfo.Summary = assemblySummary;

                XmlNodeList namespaceNodes = assemblyNode.SelectNodes("namespace");
                foreach (XmlNode namespaceNode in namespaceNodes)
                {
                    XmlAttribute namespaceNameAttribute = namespaceNode.Attributes["name"];
                    if (namespaceNameAttribute == null)
                    {
                        Logger.Warning("Namespace element in additional documentation file doesn't contain required 'name' attribute.");
                        continue;
                    }
                    string namespaceName = namespaceNameAttribute.Value;

                    string      namespaceSummary      = "";
                    XmlNodeList namespaceSummaryNodes = namespaceNode.SelectNodes("summary");
                    foreach (XmlNode namespaceSummaryNode in namespaceSummaryNodes)
                    {
                        namespaceSummary += namespaceSummaryNode.InnerXml;
                    }

                    MyNamespaceInfo myNamespaceInfo = myAssemblyInfo.FindNamespace(namespaceName);
                    if (myNamespaceInfo == null)
                    {
                        Logger.Warning("Namespace named '{0}' couldn't be found in assembly '{1}' (or has been omitted due to lack of exported types).", namespaceName, assemblyName);
                        continue;
                    }

                    myNamespaceInfo.Summary = namespaceSummary;
                }
            }
        }