Exemplo n.º 1
0
        private void BeginRetrievingModule(ModuleInfo moduleInfo)
        {
            ModuleInfo        moduleInfoToLoadType = moduleInfo;
            IModuleTypeLoader moduleTypeLoader     = this.GetTypeLoaderForModule(moduleInfoToLoadType);

            moduleInfoToLoadType.State = ModuleState.LoadingTypes;
            moduleTypeLoader.BeginLoadModuleType(moduleInfo, this.OnModuleTypeLoaded);
        }
Exemplo n.º 2
0
        private void BeginRetrievingModule(ModuleInfo moduleInfo)
        {
            ModuleInfo        moduleInfoToLoadType = moduleInfo;
            IModuleTypeLoader moduleTypeLoader     = this.GetTypeLoaderForModule(moduleInfoToLoadType);

            moduleInfoToLoadType.State = ModuleState.LoadingTypes;
            if (!this.subscribedToModuleTypeLoaders.Contains(moduleTypeLoader))
            {
                moduleTypeLoader.ModuleDownloadProgressChanged += this.IModuleTypeLoader_ModuleDownloadProgressChanged;
                moduleTypeLoader.LoadModuleCompleted           += this.IModuleTypeLoader_LoadModuleCompleted;
                this.subscribedToModuleTypeLoaders.Add(moduleTypeLoader);
            }
            moduleTypeLoader.LoadModuleType(moduleInfo);
        }
        private void BeginRetrievingModule(ModuleInfo moduleInfo)
        {
            ModuleInfo        moduleInfoToLoadType = moduleInfo;
            IModuleTypeLoader moduleTypeLoader     = this.GetTypeLoaderForModule(moduleInfoToLoadType);

            moduleInfoToLoadType.State = ModuleState.LoadingTypes;

            if (!this.subscribedToModuleTypeLoaders.Contains(moduleTypeLoader))
            {
                this.subscribedToModuleTypeLoaders.Add(moduleTypeLoader);
            }

            moduleTypeLoader.LoadModuleType(moduleInfo);
        }
Exemplo n.º 4
0
        private void BeginRetrievingModule(ModuleInfo moduleInfo)
        {
            ModuleInfo        moduleInfoToLoadType = moduleInfo;
            IModuleTypeLoader moduleTypeLoader     = this.GetTypeLoaderForModule(moduleInfoToLoadType);

            moduleInfoToLoadType.State = ModuleState.LoadingTypes;

            // Delegate += works differently betweem SL and WPF.
            // We only want to subscribe to each instance once.
            if (!this.subscribedToModuleTypeLoaders.Contains(moduleTypeLoader))
            {
                moduleTypeLoader.ModuleDownloadProgressChanged += this.IModuleTypeLoader_ModuleDownloadProgressChanged;
                moduleTypeLoader.LoadModuleCompleted           += this.IModuleTypeLoader_LoadModuleCompleted;
                this.subscribedToModuleTypeLoaders.Add(moduleTypeLoader);
            }

            moduleTypeLoader.LoadModuleType(moduleInfo);
        }
Exemplo n.º 5
0
        /// <summary>
        /// 根据给定的模块信息,开始对系统进行加载
        /// </summary>
        /// <param name="appInfo">子系统信息</param>
        private void BeginRetrievingModule(ModuleInfo moduleInfo)
        {
            ModuleInfo moduleInfoToLoadType = moduleInfo;
            //获取一个模块加载解析器
            IModuleTypeLoader moduleTypeLoader = this.GetTypeLoaderForModule(moduleInfoToLoadType);

            //修改模块状态为加载中.
            moduleInfoToLoadType.State = ModuleState.LoadingTypes;

            // Delegate += 在WPF和SL中的工作方式不同.
            //为每一个加载器仅进行一次订阅.
            if (!this.subscribedToModuleTypeLoaders.Contains(moduleTypeLoader))
            {
                moduleTypeLoader.ModuleDownloadProgressChanged += this.IModuleTypeLoader_ModuleDownloadProgressChanged;
                moduleTypeLoader.LoadModuleCompleted           += this.IModuleTypeLoader_LoadModuleCompleted;
                this.subscribedToModuleTypeLoaders.Add(moduleTypeLoader);
            }

            //模块加载
            moduleTypeLoader.LoadModuleType(moduleInfo);
        }
Exemplo n.º 6
0
 public ModuleManager(IKernel kernel, IModuleTypeLoader moduleTypeLoade)
 {
     _kernel = kernel;
     _moduleTypeLoader = moduleTypeLoade;
     LoadedModules = new Collection<ModuleInfo>();
 }