コード例 #1
0
        public void ExportICompositionServiceFromRootRequiredImportShouldsucceed()
        {
            var rootCatalog = new TypeCatalog(typeof(ClassRequiresICompositionService), typeof(ClassOptionallyImportsICompositionService));
            var container   = new CompositionContainer(rootCatalog, CompositionOptions.ExportCompositionService);

            ClassRequiresICompositionService service = container.GetExportedValue <ClassRequiresICompositionService>();

            Assert.NotNull(service.CompositionService);
        }
コード例 #2
0
        public void DontExportICompositionServiceFromRootRequiredImportShouldThrowCompositionException()
        {
            var rootCatalog = new TypeCatalog(typeof(ClassRequiresICompositionService), typeof(ClassOptionallyImportsICompositionService));
            var container   = new CompositionContainer(rootCatalog);

            Assert.Throws <ImportCardinalityMismatchException>(() =>
            {
                ClassRequiresICompositionService service = container.GetExportedValue <ClassRequiresICompositionService>();
                Assert.Null(service.CompositionService);
            });
        }