public void ShowNamespaces(bool forceRefresh = false) { if (!SharpDevelopUIOptions.ExpandReferences) { return; } if (namespaces.Count > 0 && !forceRefresh) { return; } namespaces.Clear(); Nodes.Clear(); if (string.IsNullOrEmpty(referenceProjectItem.FileName)) { return; } if (!File.Exists(referenceProjectItem.FileName)) { return; } if (Path.GetExtension(referenceProjectItem.FileName) == ".dll" || Path.GetExtension(referenceProjectItem.FileName) == ".exe") { var asm = AssemblyDefinition.ReadAssembly(referenceProjectItem.FileName); foreach (var module in asm.Modules) { if (!module.HasTypes) { continue; } foreach (var type in module.Types) { if (string.IsNullOrEmpty(type.Namespace)) { continue; } if (!namespaces.ContainsKey(type.Namespace)) { namespaces.Add(type.Namespace, new List <TypeDefinition>()); } namespaces[type.Namespace].Add(type); } foreach (var ns in namespaces.Keys) { var nsNode = new NamespaceNode(ns, namespaces[ns]); nsNode.InsertSorted(this); } } } if (Path.GetExtension(referenceProjectItem.FileName).EndsWith("proj")) { // use parser service } }