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); } }
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 } }
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()); }
internal MyNamespaceInfo FindNamespace(string assemblyName, string namezpace) { MyAssemblyInfo myAssemblyInfo = FindAssembly(assemblyName); if (myAssemblyInfo == null) { return(null); } return(myAssemblyInfo.FindNamespace(namezpace)); }
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; } } }