public void Dispose() { var parts = new TypeCatalog(typeof(FooImpl), typeof(FooImpl2), typeof(FooImpl2)).Parts; var exports = parts.Select(p => Tuple.Create(p, p.ExportDefinitions.First())); TestCatalog catalog = new TestCatalog( () => parts, () => exports); var import = parts.SelectMany(p => p.ImportDefinitions).First(); CompositionScopeDefinition scope = new CompositionScopeDefinition(catalog, null); scope.Dispose(); var ex = ExceptionAssert.Throws <ObjectDisposedException>(RetryMode.DoNotRetry, () => { var ps = scope.Parts; }); ex = ExceptionAssert.Throws <ObjectDisposedException>(RetryMode.DoNotRetry, () => { var es = scope.GetExports(import); }); scope.Dispose(); ex = ExceptionAssert.Throws <ObjectDisposedException>(RetryMode.DoNotRetry, () => { var ps = scope.Parts; }); ex = ExceptionAssert.Throws <ObjectDisposedException>(RetryMode.DoNotRetry, () => { var es = scope.GetExports(import); }); }
public void GetExports_DelegateToCatalog() { var parts = new TypeCatalog(typeof(FooImpl), typeof(FooImpl2), typeof(FooImpl2)).Parts; var exports = parts.Select(p => Tuple.Create(p, p.ExportDefinitions.First())); var import = parts.SelectMany(p => p.ImportDefinitions).First(); TestCatalog catalog = new TestCatalog( () => parts, () => exports); CompositionScopeDefinition scope = new CompositionScopeDefinition(catalog, null); Assert.Same(exports, scope.GetExports(import)); }