Ejemplo n.º 1
0
        private GuidancePackageModuleInfo Translate(IModuleInfo moduleInfo)
        {
            DependantModuleInfo dependantModuleInfo = moduleInfo as DependantModuleInfo;

            GuidancePackageModuleInfo wcsfModuleInfo = new GuidancePackageModuleInfo(moduleInfo.Name, moduleInfo.AssemblyName, moduleInfo.VirtualPath);

            if (dependantModuleInfo != null)
            {
                wcsfModuleInfo.Dependencies = dependantModuleInfo.Dependencies;
            }

            return(wcsfModuleInfo);
        }
        /// <summary>
        /// Gets the list of modules needed by the application.
        /// </summary>
        /// <returns>An array of <see cref="IModuleInfo"/>.</returns>
        public IModuleInfo[] EnumerateModules()
        {
            if (_modules != null)
            {
                return(_modules);
            }

            List <DependantModuleInfo>  moduleInfos = new List <DependantModuleInfo>();
            ModulesConfigurationSection section     = _store.GetModuleConfigurationSection();

            ValidateDuplicates(section);

            foreach (ModuleConfigurationElement data in section.Modules)
            {
                DependantModuleInfo moduleInfo = new DependantModuleInfo(data.Name, data.AssemblyName, data.VirtualPath);
                if (data.Dependencies.Count > 0)
                {
                    moduleInfo.Dependencies = new ModuleDependency[data.Dependencies.Count];
                    for (int i = 0; i < data.Dependencies.Count; i++)
                    {
                        moduleInfo.Dependencies[i]      = new ModuleDependency();
                        moduleInfo.Dependencies[i].Name = data.Dependencies[i].Module;
                    }
                }

                if (data.Services.Count > 0)
                {
                    moduleInfo.Services = new ServiceInfo[data.Services.Count];

                    for (int i = 0; i < data.Services.Count; i++)
                    {
                        moduleInfo.Services[i] =
                            new ServiceInfo(data.Services[i].RegisterAs, data.Services[i].Type, data.Services[i].Scope);
                    }
                }

                moduleInfos.Add(moduleInfo);
            }

            if (moduleInfos.Count > 0)
            {
                _modules = SortModules(moduleInfos);
            }
            else
            {
                _modules = moduleInfos.ToArray();
            }
            return(_modules);
        }
        private static void LoadServices(CompositionContainer container, IModuleInfo moduleInfo)
        {
            IServiceLoaderService serviceLoader = container.Services.Get <IServiceLoaderService>();

            if (serviceLoader == null)
            {
                return;
            }

            DependantModuleInfo dependantModuleInfo = moduleInfo as DependantModuleInfo;

            if (dependantModuleInfo != null && dependantModuleInfo.Services != null)
            {
                serviceLoader.Load(container, dependantModuleInfo.Services);
            }
        }
Ejemplo n.º 4
0
        public void LoadRegistersServicesUsingIServiceLoaderService()
        {
            CompositionContainer     mockContainer        = new TestableRootCompositionContainer();
            MockServiceLoaderService serviceLoaderService = new MockServiceLoaderService();

            mockContainer.Services.Add <IServiceLoaderService>(serviceLoaderService);
            ModuleLoaderService loader     = new ModuleLoaderService();
            DependantModuleInfo moduleInfo =
                new DependantModuleInfo("TestModule", generatedAssemblies["TestModule"].FullName, "~/TestModule");

            moduleInfo.Services =
                new ServiceInfo[1] {
                new ServiceInfo(typeof(IMockService), typeof(MockService), ServiceScope.Global)
            };

            loader.Load(mockContainer, moduleInfo);

            Assert.IsNotNull(serviceLoaderService.UsedServices);
            Assert.AreEqual(1, serviceLoaderService.UsedServices.Length);
            Assert.AreEqual(typeof(IMockService), serviceLoaderService.UsedServices[0].RegisterAs);
            Assert.IsNotNull(serviceLoaderService.UsedCompositionContainer);
            Assert.AreEqual(mockContainer.Containers["TestModule"], serviceLoaderService.UsedCompositionContainer);
        }
        public void TranslateDependantModuleInfo()
        {
            DependantModuleInfo dependantModuleInfo = new DependantModuleInfo("Module1", "Module1.dll", "Module1");

            dependantModuleInfo.Dependencies = new ModuleDependency[1];

            ModuleDependency dependency = new ModuleDependency();

            dependency.Name = "ModuleDependency";

            dependantModuleInfo.Dependencies[0] = dependency;

            DependantModuleInfo[] modules = new DependantModuleInfo[1];
            modules[0] = dependantModuleInfo;

            GuidancePackageModuleInfo[] guidanceModules = new ModuleInfoMapper().Translate(modules);

            Assert.AreEqual(guidanceModules.Length, modules.Length);
            Assert.AreEqual(guidanceModules[0].Name, dependantModuleInfo.Name);
            Assert.AreEqual(guidanceModules[0].AssemblyName, dependantModuleInfo.AssemblyName);
            Assert.AreEqual(guidanceModules[0].VirtualPath, dependantModuleInfo.VirtualPath);
            Assert.AreEqual(guidanceModules[0].Dependencies.Length, dependantModuleInfo.Dependencies.Length);
            Assert.AreEqual(guidanceModules[0].Dependencies[0].Name, dependantModuleInfo.Dependencies[0].Name);
        }
Ejemplo n.º 6
0
        public void TestDependantModuleInfoIsIModuleInfo()
        {
            DependantModuleInfo info = new DependantModuleInfo("name", "type", "location");

            Assert.IsTrue(info is IModuleInfo);
        }
Ejemplo n.º 7
0
        public void CanCreateDependantModule()
        {
            DependantModuleInfo info = new DependantModuleInfo();

            Assert.IsNotNull(info is IModuleInfo);
        }