Ejemplo n.º 1
0
 private ResolverTree(Framework framework, ResolverImpl resolver)
 {
     resolvers           = new ResolverNodeCollection();
     trackCache          = new Hashtable();
     leafResolverBundles = new Hashtable();
     this.resolver       = resolver;
     this.framework      = framework;
 }
Ejemplo n.º 2
0
        /// <summary>
        /// 根据插件列表创建解析管理器
        /// </summary>
        /// <param name="bundle"></param>
        /// <returns></returns>
        public static ResolverTree Parse(Framework framework, ResolverImpl resolver, IList <AbstractBundle> bundles)
        {
            Hashtable    cache = new Hashtable();
            ResolverTree admin = new ResolverTree(framework, resolver);

            foreach (AbstractBundle bundle in bundles)
            {
                if (!cache.Contains(bundle.ToString()))
                {
                    ResolverNode resolverBundle = admin.CreateResolverBundle(bundle);
                    if (resolverBundle != null)
                    {
                        //resolver.ResolveBundleStartPolicy(resolverBundle, ActivatorPolicy.Lazy);
                        admin.resolvers.Add(resolverBundle);
                        cache.Add(bundle.ToString(), bundle);
                    }
                }
            }
            return(admin);
        }