Beispiel #1
0
 /// <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);
 }
Beispiel #2
0
 /// <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);
 }
Beispiel #3
0
 /// <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;
 }
Beispiel #4
0
        /// <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);
        }