当前位置: 首页>>代码示例>>C#>>正文


C# Container.RegisterInstance方法代码示例

本文整理汇总了C#中Container.RegisterInstance方法的典型用法代码示例。如果您正苦于以下问题:C# Container.RegisterInstance方法的具体用法?C# Container.RegisterInstance怎么用?C# Container.RegisterInstance使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Container的用法示例。


在下文中一共展示了Container.RegisterInstance方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: InterfaceReRegisteredFromInstanceToInstance_Success

        public void InterfaceReRegisteredFromInstanceToInstance_Success()
        {
            var c = new Container();
            IEmptyClass emptyClass = new EmptyClass();
            c.RegisterInstance(emptyClass).AsPerHttpContext();

            var controller = new DefaultController();
            HttpContext.Current = new HttpContext(new HttpRequest("", "http://tempuri.org", ""), new HttpResponse(new StringWriter()));
            var result1 = controller.ResolveObject<IEmptyClass>(c, ResolveKind.PartialEmitFunction);
            var emptyClass1 = (IEmptyClass)((ViewResult)result1).Model;
            var result2 = controller.ResolveObject<IEmptyClass>(c, ResolveKind.PartialEmitFunction);
            var emptyClass2 = (IEmptyClass)((ViewResult)result2).Model;

            IEmptyClass emptyClass3 = new EmptyClass();
            c.RegisterInstance(emptyClass3).AsPerHttpContext();
            var result4 = controller.ResolveObject<IEmptyClass>(c, ResolveKind.PartialEmitFunction);
            var emptyClass4 = (IEmptyClass)((ViewResult)result4).Model;
            var result5 = controller.ResolveObject<IEmptyClass>(c, ResolveKind.PartialEmitFunction);
            var emptyClass5 = (IEmptyClass)((ViewResult)result5).Model;

            Assert.AreEqual(emptyClass, emptyClass1);
            Assert.AreEqual(emptyClass1, emptyClass2);
            Assert.AreEqual(emptyClass3, emptyClass4);
            Assert.AreEqual(emptyClass4, emptyClass5);
            Assert.AreNotEqual(emptyClass, emptyClass3);
        }
开发者ID:amularczyk,项目名称:NiquIoC,代码行数:26,代码来源:ReRegistereInterfaceTests.cs

示例2: T00_Various_types

 public void T00_Various_types()
 {
     var container = new Container(log: Write);
     Assert.Throws<ArgumentNullException>(() => container.RegisterSingleton(null)).WriteMessageTo(Write);
     Assert.Throws<ArgumentNullException>(() => container.RegisterFactory(typeof(object), null)).WriteMessageTo(Write);
     Assert.Throws<ArgumentNullException>(() => container.RegisterInstance(typeof(object), null)).WriteMessageTo(Write);
     Assert.Throws<TypeAccessException>(() => container.RegisterSingleton(typeof(int))).WriteMessageTo(Write);
     Assert.Throws<TypeAccessException>(() => container.RegisterSingleton(typeof(string))).WriteMessageTo(Write);
     Assert.Throws<TypeAccessException>(() => container.RegisterInstance(42)).WriteMessageTo(Write);
     Assert.Throws<ArgumentNullException>(() => container.Resolve(null)).WriteMessageTo(Write);
 }
开发者ID:dshe,项目名称:StandardContainer,代码行数:11,代码来源:RegisterErrorTest.cs

示例3: T02_Interface

 public void T02_Interface()
 {
     var container = new Container(log: Write);
     var instance = new SomeClass();
     container.RegisterInstance<ISomeClass>(instance);
     var instance1 = container.Resolve<ISomeClass>();
     Assert.Equal(instance, instance1);
     var instance2 = container.Resolve<ISomeClass>();
     Assert.Equal(instance1, instance2);
     Assert.Throws<TypeAccessException>(() => container.Resolve<SomeClass>());
     Assert.Throws<TypeAccessException>(() => container.RegisterInstance<ISomeClass>(instance)).WriteMessageTo(Write);
 }
开发者ID:dshe,项目名称:StandardContainer,代码行数:12,代码来源:InstanceTest.cs

示例4: Register2Instances

        public void Register2Instances()
        {
            var container = new Container();
            var a = new ClassA();
            container.RegisterInstance(a, "A");
            var b = new ClassA();
            container.RegisterInstance(b, "B");

            var a1 = container.Resolve<ClassA>("A");
            var b1 = container.Resolve<ClassA>("B");
            Assert.AreSame(a, a1);
            Assert.AreSame(b, b1);
        }
开发者ID:5665tm,项目名称:UnityDI,代码行数:13,代码来源:RegisterInstanceTests.cs

示例5: MainMenuInvisibleAfterFlightStarted

        public void MainMenuInvisibleAfterFlightStarted()
        {
            var mainMenu = new Mock<IMainMenu>();

            var container = new Container();
            container.RegisterType<GameMain>();
            container.RegisterInstance(mainMenu.Object);
            container.RegisterInstance(new Mock<IHud>().Object);
            container.RegisterInstance(new Mock<IFlight>().Object);

            var gameMain = container.Resolve<GameMain>();
            mainMenu.Raise(m => m.StartNewGame += null);
            mainMenu.Verify(m => m.SetVisible(false), Times.Once());
        }
开发者ID:5665tm,项目名称:UnityDI,代码行数:14,代码来源:GameMainTests.cs

示例6: FlightNotUpdated

        public void FlightNotUpdated()
        {
            var flight = new Mock<IFlight>();

            var container = new Container();
            container.RegisterType<GameMain>();
            container.RegisterInstance(new Mock<IMainMenu>().Object);
            container.RegisterInstance(new Mock<IHud>().Object);
            container.RegisterInstance(flight.Object);

            var gameMain = container.Resolve<GameMain>();
            gameMain.Update(1.0f);
            flight.Verify(f => f.StartNewFlight(), Times.Never());
            flight.Verify(f => f.Update(It.IsAny<float>()), Times.Never());
        }
开发者ID:5665tm,项目名称:UnityDI,代码行数:15,代码来源:GameMainTests.cs

示例7: ClassReRegisteredFromClassToInstance_Success

        public void ClassReRegisteredFromClassToInstance_Success()
        {
            var c = new Container();
            c.RegisterType<EmptyClass>().AsPerThread();
            var emptyClass = new EmptyClass();
            EmptyClass emptyClass1 = null;
            EmptyClass emptyClass2 = null;
            EmptyClass emptyClass3 = null;
            EmptyClass emptyClass4 = null;

            var thread = new Thread(() =>
            {
                emptyClass1 = c.Resolve<EmptyClass>(ResolveKind.PartialEmitFunction);
                emptyClass2 = c.Resolve<EmptyClass>(ResolveKind.PartialEmitFunction);

                c.RegisterInstance(emptyClass).AsPerThread();
                emptyClass3 = c.Resolve<EmptyClass>(ResolveKind.PartialEmitFunction);
                emptyClass4 = c.Resolve<EmptyClass>(ResolveKind.PartialEmitFunction);
            });
            thread.Start();
            thread.Join();

            Assert.AreEqual(emptyClass1, emptyClass2);
            Assert.AreEqual(emptyClass, emptyClass3);
            Assert.AreEqual(emptyClass3, emptyClass4);
            Assert.AreNotEqual(emptyClass1, emptyClass);
        }
开发者ID:amularczyk,项目名称:NiquIoC,代码行数:27,代码来源:ReRegistereClassTests.cs

示例8: InterfaceReRegisteredFromInstanceToInstance_Success

        public void InterfaceReRegisteredFromInstanceToInstance_Success()
        {
            var c = new Container();
            IEmptyClass emptyClass = new EmptyClass();
            IEmptyClass emptyClass3 = new EmptyClass();
            c.RegisterInstance(emptyClass).AsPerThread();
            IEmptyClass emptyClass1 = null;
            IEmptyClass emptyClass2 = null;
            IEmptyClass emptyClass4 = null;
            IEmptyClass emptyClass5 = null;

            var thread = new Thread(() =>
            {
                emptyClass1 = c.Resolve<IEmptyClass>(ResolveKind.FullEmitFunction);
                emptyClass2 = c.Resolve<IEmptyClass>(ResolveKind.FullEmitFunction);

                c.RegisterInstance(emptyClass3).AsPerThread();
                emptyClass4 = c.Resolve<IEmptyClass>(ResolveKind.FullEmitFunction);
                emptyClass5 = c.Resolve<IEmptyClass>(ResolveKind.FullEmitFunction);
            });
            thread.Start();
            thread.Join();

            Assert.AreEqual(emptyClass, emptyClass1);
            Assert.AreEqual(emptyClass1, emptyClass2);
            Assert.AreEqual(emptyClass3, emptyClass4);
            Assert.AreEqual(emptyClass4, emptyClass5);
            Assert.AreNotEqual(emptyClass, emptyClass3);
        }
开发者ID:amularczyk,项目名称:NiquIoC,代码行数:29,代码来源:ReRegistereInterfaceTests.cs

示例9: StartNewFlightPropagated

        public void StartNewFlightPropagated()
        {
            var field = new Mock<IAsteroidField>();
            var shipController = new Mock<IShipController>();

            var container = new Container();
            container.RegisterType<Flight>();
            container.RegisterInstance(field.Object);
            container.RegisterInstance(new Mock<ISpaceShip>().Object);
            container.RegisterInstance(shipController.Object);

            var flight = container.Resolve<Flight>();
            flight.StartNewFlight();
            field.Verify(f => f.StartNewFlight(),Times.Once());
            shipController.Verify(s => s.StartNewFlight(),Times.Once());
        }
开发者ID:5665tm,项目名称:UnityDI,代码行数:16,代码来源:FlightTests.cs

示例10: T02_Dispose_Instance

 public void T02_Dispose_Instance()
 {
     var container = new Container(defaultLifestyle: DefaultLifestyle.Singleton, log: Write);
     var instance = new ClassA();
     container.RegisterInstance(instance);
     container.Dispose();
     Assert.True(instance.IsDisposed);
 }
开发者ID:dshe,项目名称:StandardContainer,代码行数:8,代码来源:DisposeTest.cs

示例11: FlightStartedFromMainMenu

        public void FlightStartedFromMainMenu()
        {
            var mainMenu = new Mock<IMainMenu>();
            var flight = new Mock<IFlight>();

            var container = new Container();
            container.RegisterType<GameMain>();
            container.RegisterInstance(mainMenu.Object);
            container.RegisterInstance(new Mock<IHud>().Object);
            container.RegisterInstance(flight.Object);

            var gameMain = container.Resolve<GameMain>();
            mainMenu.Raise(m => m.StartNewGame += null);

            flight.Verify(f => f.StartNewFlight(), Times.Once());
            gameMain.Update(1.0f);
            flight.Verify(f => f.Update(1.0f), Times.Once());
        }
开发者ID:5665tm,项目名称:UnityDI,代码行数:18,代码来源:GameMainTests.cs

示例12: RegisterInstanceOfEmptyClass_Success

        public void RegisterInstanceOfEmptyClass_Success()
        {
            var c = new Container();
            var emptyClass1 = new EmptyClass();
            c.RegisterInstance(emptyClass1);

            var emptyClass2 = c.Resolve<EmptyClass>(ResolveKind.FullEmitFunction);

            Assert.AreEqual(emptyClass1, emptyClass2);
        }
开发者ID:amularczyk,项目名称:NiquIoC,代码行数:10,代码来源:RegisterClassInstanceTests.cs

示例13: Should_return_registered_instance_per_interface

        public void Should_return_registered_instance_per_interface()
        {
            IContainer c = new Container();
            ITestClass instance = new TestClass();
            c.RegisterInstance<ITestClass>(instance);

            var result = c.Resolve<ITestClass>();

            Assert.AreSame(instance, result);
        }
开发者ID:KenjiTakahashi,项目名称:pooDI,代码行数:10,代码来源:DIContainerTests.cs

示例14: RegisterInstance

        public void RegisterInstance()
        {
            var container = new Container();
            var a = new ClassA();
            container.RegisterInstance(a);

            var b = container.Resolve<ClassA>();
            Assert.IsNotNull(a);
            Assert.AreSame(a, b);
        }
开发者ID:5665tm,项目名称:UnityDI,代码行数:10,代码来源:RegisterInstanceTests.cs

示例15: InstanceInjectedNotCalled

        public void InstanceInjectedNotCalled()
        {
            var container = new Container();
            var a = new Dependent();
            container.RegisterInstance(a);

            var b = container.Resolve<Dependent>();
            Assert.AreEqual(0, a.OnInjectedCalledCount);
            Assert.AreEqual(0, b.OnInjectedCalledCount);
        }
开发者ID:5665tm,项目名称:UnityDI,代码行数:10,代码来源:DependentTests.cs


注:本文中的Container.RegisterInstance方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。