public void RootPathContainsCustomModules_CustomModulesAreImported()
        {
            var rootPath = GetCurrentDirectory();

            ICompositionContainer <ICustomModule> compositionContainer = CreateCompositionContainer <ICustomModule>(rootPath);

            compositionContainer.Compose();

            var modules      = compositionContainer.Modules;
            var modulesCount = modules.Count();

            modulesCount.Should().Be(2);
        }
예제 #2
0
        /// <summary>
        /// Creates composable parts from an array of attributed objects and composes them in the specified composition container.
        /// </summary>
        /// <param name="container">The composition container to perform composition in.</param>
        /// <param name="attributedParts">An array of attributed objects to compose.</param>
        public static void ComposeParts(this ICompositionContainer container, params object[] attributedParts)
        {
            Requires.NotNull(container, nameof(container));
            Requires.NotNull(attributedParts, nameof(attributedParts));

            ComposablePart[] parts = new ComposablePart[attributedParts.Length];

            for (int i = 0; i < parts.Length; i++)
            {
                parts[i] = AttributedModelServices.CreatePart(attributedParts[i]);
            }

            CompositionBatch batch = new CompositionBatch(parts, Enumerable.Empty <ComposablePart>());

            container.Compose(batch);
        }
예제 #3
0
 private void InitializeComposition(string rootPath, string[] prefixes = null)
 {
     CompositionContainer = new CompositionContainer(_compositionModuleCreationStrategy, new FileSystemBasedAssemblyLoadingStrategy(rootPath, prefixes));
     CompositionContainer.Compose();
 }
예제 #4
0
 private void InitializeComposition(IEnumerable <Assembly> assemblies)
 {
     CompositionContainer = new CompositionContainer(_compositionModuleCreationStrategy,
                                                     new PreloadedAssemblyLoadingStrategy(assemblies));
     CompositionContainer.Compose();
 }
예제 #5
0
 private void InitializeComposition(string rootPath, string[] prefixes = null)
 {
     CompositionContainer = new CompositionContainer(_compositionModuleCreationStrategy, rootPath, prefixes);
     CompositionContainer.Compose();
 }