public AssemblyPackageContainer GetAssemblyPackages(IEnumerable <AssemblyPart> assemblyParts)
        {
            var sourceParts = assemblyParts.ToList();
            var assemblies  = new List <AssemblyPart>();

            foreach (var i in AssemblyResolverManager.AppDomain.GetAssemblies())
            {
                for (var j = 0; j < sourceParts.Count; j++)
                {
                    if (string.Compare(sourceParts[j].Source, string.Concat(i.GetName().Name, ".dll"), true) == 0)
                    {
                        sourceParts[j].Assembly = i;
                        assemblies.Add(sourceParts[j]);
                        sourceParts.RemoveAt(j--);
                    }
                }
            }
            var pkg = new AssemblyPackage(assemblies)
            {
                Uid = Guid.NewGuid()
            };

            _packages.Add(pkg.Uid, pkg);
            return(new AssemblyPackageContainer(pkg));
        }
        /// <summary>
        /// Recupera o pacote do assembly.
        /// </summary>
        /// <param name="assemblyPackageUid"></param>
        /// <returns></returns>
        public IAssemblyPackage GetAssemblyPackage(Guid assemblyPackageUid)
        {
            AssemblyPackage pkg = null;

            if (_packages.TryGetValue(assemblyPackageUid, out pkg))
            {
                return(pkg);
            }
            return(null);
        }