IEnumerable <Lazy <TExtension, TMetadata> > IMefHostExportProvider.GetExports <TExtension, TMetadata>() { var importer = new WithMetadataImporter <TExtension, TMetadata>(); _compositionContext.SatisfyImports(importer); return(importer.Exports); }
public void When_adding_by_type_then_object_should_automatically_be_instantiated() { var ctx = new CompositionContext(); ctx.AddPart<ExportClass, ExportClass>(); var obj = new ImportClass(); ctx.SatisfyImports(obj); Assert.IsTrue(obj.Object != null); }
public void When_adding_by_type_then_object_should_automatically_be_instantiated() { var ctx = new CompositionContext(); ctx.AddPart <ExportClass, ExportClass>(); var obj = new ImportClass(); ctx.SatisfyImports(obj); Assert.IsTrue(obj.Object != null); }
public void When_loading_objects_from_assembly_then_they_should_be_accessible() { var ctx = new CompositionContext(); ctx.AddPartsFromAssembly(GetType().GetTypeInfo().Assembly); var obj = new ImportClass2(); ctx.SatisfyImports(obj); Assert.IsTrue(obj.Object1 != null); }
public void When_adding_object_then_it_should_be_loadable() { var ctx = new CompositionContext(); var part = new ExportClass(); ctx.AddPart <ExportClass, ExportClass>(part); var obj = new ImportClass(); ctx.SatisfyImports(obj); Assert.AreEqual(part, obj.Object); }
public void When_importing_many_objects_then_a_list_should_be_accessible() { var ctx = new CompositionContext(); ctx.AddPart <ExportClass, ExportClass1>(); ctx.AddPart <ExportClass, ExportClass2>(); var obj = new ImportManyClass(); ctx.SatisfyImports(obj); Assert.AreEqual(2, obj.Objects.Count()); }
public void When_adding_object_and_name_then_it_should_be_loadable() { var ctx = new CompositionContext(); var part1 = new ExportClass(); var part2 = new ExportClass(); ctx.AddPart <ExportClass, ExportClass>(part1, "1"); ctx.AddPart <ExportClass, ExportClass>(part2, "2"); var obj = new ImportClass2(); ctx.SatisfyImports(obj); Assert.AreEqual(part1, obj.Object1); Assert.AreEqual(part2, obj.Object2); }
/// <summary>Sets the part.</summary> /// <param name="ctx">The context.</param> /// <param name="part">The part.</param> public void SetPart(CompositionContext ctx, object part) { ctx.SatisfyImports(_part); lock (_lock) _part = part; }
public void When_adding_object_then_it_should_be_loadable() { var ctx = new CompositionContext(); var part = new ExportClass(); ctx.AddPart<ExportClass, ExportClass>(part); var obj = new ImportClass(); ctx.SatisfyImports(obj); Assert.AreEqual(part, obj.Object); }
public void When_adding_object_and_name_then_it_should_be_loadable() { var ctx = new CompositionContext(); var part1 = new ExportClass(); var part2 = new ExportClass(); ctx.AddPart<ExportClass, ExportClass>(part1, "1"); ctx.AddPart<ExportClass, ExportClass>(part2, "2"); var obj = new ImportClass2(); ctx.SatisfyImports(obj); Assert.AreEqual(part1, obj.Object1); Assert.AreEqual(part2, obj.Object2); }
public void When_importing_many_objects_then_a_list_should_be_accessible() { var ctx = new CompositionContext(); ctx.AddPart<ExportClass, ExportClass1>(); ctx.AddPart<ExportClass, ExportClass2>(); var obj = new ImportManyClass(); ctx.SatisfyImports(obj); Assert.AreEqual(2, obj.Objects.Count()); }