/// <summary> /// Annulation de la suppression (si l'utilisateur fait un undo) /// </summary> /// <param name="externalAssemblyModel"></param> internal void UnregisterExternalAssemblyPendingDelete(DotNetAssembly externalAssemblyModel) { //pendingsExternalAssemblyDeleted.Remove(externalAssemblyModel.Id); }
/// <summary> /// Gets the parent for dot net assembly. /// </summary> /// <param name="dotNetAssembly">The dot net assembly.</param> /// <returns></returns> private Microsoft.VisualStudio.Modeling.ModelElement GetParentForDotNetAssembly(DotNetAssembly dotNetAssembly) { return(dotNetAssembly.Component); }
/// <summary> /// Enregistrement de la dll à supprimer /// </summary> /// <param name="model">The model.</param> internal void RegisterExternalAssemblyPendingDelete(DotNetAssembly model) { // Non on laisse tout dans le repository local (a voir) //pendingsExternalAssemblyDeleted[model.Id] = model.Name; }
/// <summary> /// Permet lors de l'import d'une assembly de récupérer la liste des assemblies /// référencées par celle-ci /// </summary> /// <param name="asm">The asm.</param> /// <returns></returns> private List <AssemblyName> GetAssemblyListToCreate(Assembly asm) { List <AssemblyName> referencedAssemblies = new List <AssemblyName>(); // Parcours de la liste des assemblies CLR foreach (AssemblyName an in asm.GetReferencedAssemblies()) { // On ignore les assemblies systèmes if (Utils.StringCompareEquals(an.Name, "mscorlib") || an.Name.StartsWith("System", StringComparison.CurrentCultureIgnoreCase)) { continue; } // On regarde si cette assembly existe déjà dans le modèle DotNetAssembly eam = Component.FindDotNetAssemblyModelFromAssembly(an); if (eam != null) { // Recherche si ce lien existe dèjà bool notFound = AssemblyReferencesAssemblies.GetLink(this, eam) == null && AssemblyReferencesAssemblies.GetLink(eam, this) == null; if (notFound) { // Création du lien AssemblyReferencesAssemblies ara = new AssemblyReferencesAssemblies(this, eam); ara.Scope = ReferenceScope.Publish; if (eam.IsInGac) { ara.Scope |= ReferenceScope.Runtime; } if (eam.Visibility == Visibility.Public) { ara.Scope |= ReferenceScope.Compilation; } //this.InternalAssemblyReferences.Add( eam ); } continue; } // Idem si c'est une référence externe (binaire) ExternalComponent esm = Component.Model.FindExternalComponentByName(an.Name); if (esm != null && esm.MetaData != null && esm.MetaData.ComponentType == ComponentType.Library) { foreach (ExternalPublicPort port in esm.Ports) { if (Utils.StringCompareEquals(an.Name, port.Name)) { if (ExternalServiceReference.GetLink(this, port) == null) { ExternalServiceReferences.Add(port); } } break; } } // Liste des références externes à créer referencedAssemblies.Add(an); } return(referencedAssemblies); }