コード例 #1
0
ファイル: MefHostServices.cs プロジェクト: khm1600/CJing
        IEnumerable <Lazy <TExtension, TMetadata> > IMefHostExportProvider.GetExports <TExtension, TMetadata>()
        {
            var importer = new WithMetadataImporter <TExtension, TMetadata>();

            _compositionContext.SatisfyImports(importer);
            return(importer.Exports);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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);
        }
コード例 #6
0
        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());
        }
コード例 #7
0
        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);
        }
コード例 #8
0
 /// <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;
 }
コード例 #9
0
        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);
        }
コード例 #10
0
        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);
        }
コード例 #11
0
        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);
        }
コード例 #12
0
        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());
        }