public override void Execute(object parameter) { var classBrowser = SD.GetService <IClassBrowser>(); if (classBrowser != null) { IAssemblyModel assemblyModel = parameter as IAssemblyModel; if (assemblyModel == null) { // Node is a project? IProject project = parameter as IProject; if (project != null) { assemblyModel = project.AssemblyModel; } } if (assemblyModel == null) { // Node is an assembly reference? IAssemblyReferenceModel assemblyReference = parameter as IAssemblyReferenceModel; if (assemblyReference != null) { // Model is an assembly reference IAssemblyParserService assemblyParserService = SD.GetRequiredService <IAssemblyParserService>(); IEntityModelContext entityModelContext = assemblyReference.ParentAssemblyModel.Context; CombinedAssemblySearcher searcher = new CombinedAssemblySearcher(); if ((entityModelContext != null) && (entityModelContext.Project != null)) { searcher.AddSearcher(new ProjectAssemblyReferenceSearcher(entityModelContext.Project)); } searcher.AddSearcher(new DefaultAssemblySearcher(assemblyReference.ParentAssemblyModel.Location)); var resolvedFile = searcher.FindAssembly(assemblyReference.AssemblyName); if (resolvedFile != null) { assemblyModel = assemblyParserService.GetAssemblyModelSafe(resolvedFile); } else { // Assembly file not resolvable SD.MessageService.ShowWarningFormatted("Could not resolve reference '{0}'.", assemblyReference.AssemblyName.ShortName); } } } if (assemblyModel != null) { // Try to remove AssemblyModel from list of UnpinnedAssemblies classBrowser.UnpinnedAssemblies.Assemblies.RemoveAll(a => a.FullAssemblyName == assemblyModel.FullAssemblyName); if (!classBrowser.MainAssemblyList.Assemblies.Contains(assemblyModel)) { classBrowser.MainAssemblyList.Assemblies.Add(assemblyModel); } // Bring the node into view classBrowser.GotoAssemblyModel(assemblyModel); } } }
public override void Execute(object parameter) { IAssemblyReferenceModel assemblyReferenceModel = parameter as IAssemblyReferenceModel; if (assemblyReferenceModel != null) { IAssemblyModel assemblyModel = assemblyReferenceModel.ParentAssemblyModel; if ((assemblyModel != null) && (assemblyModel.Context != null)) { IProject project = (parameter != null) ? assemblyModel.Context.Project : ProjectService.CurrentProject; if (project == null) { return; } ProjectItem referenceProjectItem = project.Items.FirstOrDefault( item => { if (item.ItemType == ItemType.COMReference) { // Special handling for COM references: Their assembly names are prefixed with "Interop." return(assemblyReferenceModel.AssemblyName.ShortName == "Interop." + item.Include); } return((item.Include == assemblyReferenceModel.AssemblyName.ShortName) && ItemType.ReferenceItemTypes.Contains(item.ItemType)); }); if (referenceProjectItem != null) { ProjectService.RemoveProjectItem(referenceProjectItem.Project, referenceProjectItem); project.Save(); } } } }
public AssemblyReferenceTreeNode(IAssemblyReferenceModel model) { if (model == null) throw new ArgumentNullException("model"); this.model = model; // To avoid the "+" sign in front of node... this.LazyLoading = false; }
public AssemblyReferenceTreeNode(IAssemblyReferenceModel model) { if (model == null) { throw new ArgumentNullException("model"); } this.model = model; // To avoid the "+" sign in front of node... this.LazyLoading = false; }
public AssemblyReferenceTreeNode(IAssemblyReferenceModel model) { if (model == null) throw new ArgumentNullException("model"); this.model = model; }