public void UnityCanResolveMefComponentRegisteredUsingAddExportedValueTest() { MefSingletonComponent.Counter = 0; // Setup var unityContainer = new UnityContainer(); var assemblyCatalog = new AssemblyCatalog(Assembly.GetExecutingAssembly()); // Register catalog and types unityContainer.RegisterCatalog(assemblyCatalog); var compositionContainer = unityContainer.Configure <CompositionIntegration>().CompositionContainer; var batch = new CompositionBatch(); var singletonComponent = new MefSingletonComponent(); batch.AddExportedValue(singletonComponent); compositionContainer.Compose(batch); var singletonComponent1 = compositionContainer.GetExport <MefSingletonComponent>().Value; Assert.That(MefSingletonComponent.Counter, Is.EqualTo(1)); Assert.That(singletonComponent1, Is.SameAs(singletonComponent)); var singletonComponent2 = unityContainer.Resolve <MefSingletonComponent>(); Assert.That(MefSingletonComponent.Counter, Is.EqualTo(1)); Assert.That(singletonComponent2, Is.SameAs(singletonComponent)); }
public void AutofacCanResolveMefComponentRegisteredUsingAddExportedValueTest() { MefSingletonComponent.Counter = 0; // Setup var builder = new ContainerBuilder(); builder.EnableCompositionIntegration(); var assemblyCatalog = new AssemblyCatalog(Assembly.GetExecutingAssembly()); // Register catalog and types builder.RegisterCatalog(assemblyCatalog); var autofacContainer = builder.Build(); var compositionContainer = autofacContainer.Resolve<CompositionContainer>(); var batch = new CompositionBatch(); var singletonComponent = new MefSingletonComponent(); batch.AddExportedValue(singletonComponent); compositionContainer.Compose(batch); var singletonComponent1 = compositionContainer.GetExport<MefSingletonComponent>().Value; Assert.That(MefSingletonComponent.Counter, Is.EqualTo(1)); Assert.That(singletonComponent1, Is.SameAs(singletonComponent)); var singletonComponent2 = autofacContainer.Resolve<MefSingletonComponent>(); Assert.That(MefSingletonComponent.Counter, Is.EqualTo(1)); Assert.That(singletonComponent2, Is.SameAs(singletonComponent)); }