[ActiveIssue(25498, TestPlatforms.AnyUnix)] // System.Reflection.ReflectionTypeLoadException : Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information. public void ImportCompletedBindChildIndirectlyThroughParentContainerBind() { var cat = CatalogFactory.CreateDefaultAttributed(); var parent = new CompositionContainer(cat); CompositionBatch parentBatch = new CompositionBatch(); CompositionBatch childBatch = new CompositionBatch(); parentBatch.AddExportedValue <ICompositionService>(parent); parent.Compose(parentBatch); var child = new CompositionContainer(parent); var parentImporter = new MyNotifyImportImporter(parent); var childImporter = new MyNotifyImportImporter(child); parentBatch = new CompositionBatch(); parentBatch.AddPart(parentImporter); childBatch.AddParts(childImporter, new MyNotifyImportExporter()); parent.Compose(parentBatch); child.Compose(childBatch); Assert.Equal(1, parentImporter.ImportCompletedCallCount); Assert.Equal(1, childImporter.ImportCompletedCallCount); MyNotifyImportExporter parentExporter = parent.GetExportedValue <MyNotifyImportExporter>("MyNotifyImportExporter"); Assert.Equal(1, parentExporter.ImportCompletedCallCount); MyNotifyImportExporter childExporter = child.GetExportedValue <MyNotifyImportExporter>("MyNotifyImportExporter"); Assert.Equal(1, childExporter.ImportCompletedCallCount); }
[ActiveIssue(25498, TestPlatforms.AnyUnix)] // System.Reflection.ReflectionTypeLoadException : Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information. public void ImportCompletedChildDoesnotNeedParentContainer() { var cat = CatalogFactory.CreateDefaultAttributed(); var parent = new CompositionContainer(cat); CompositionBatch parentBatch = new CompositionBatch(); CompositionBatch childBatch = new CompositionBatch(); parentBatch.AddExportedValue <ICompositionService>(parent); parent.Compose(parentBatch); var child = new CompositionContainer(parent); var parentImporter = new MyNotifyImportImporter(parent); var childImporter = new MyNotifyImportImporter(child); parentBatch = new CompositionBatch(); parentBatch.AddPart(parentImporter); childBatch.AddParts(childImporter, new MyNotifyImportExporter()); child.Compose(childBatch); Assert.Equal(0, parentImporter.ImportCompletedCallCount); Assert.Equal(1, childImporter.ImportCompletedCallCount); // Parent will become bound at this point. MyNotifyImportExporter parentExporter = parent.GetExportedValue <MyNotifyImportExporter>("MyNotifyImportExporter"); parent.Compose(parentBatch); Assert.Equal(1, parentImporter.ImportCompletedCallCount); Assert.Equal(1, parentExporter.ImportCompletedCallCount); MyNotifyImportExporter childExporter = child.GetExportedValue <MyNotifyImportExporter>("MyNotifyImportExporter"); Assert.Equal(1, childExporter.ImportCompletedCallCount); }