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


C# Container.RegisterPerWebRequest方法代码示例

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


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

示例1: RegisterPerWebRequest_CalledMultipleTimes_Succeeds

        public void RegisterPerWebRequest_CalledMultipleTimes_Succeeds()
        {
            // Arrange
            var container = new Container();

            // Act
            container.RegisterPerWebRequest<ConcreteCommand>();
            container.RegisterPerWebRequest<ICommand>(() => new ConcreteCommand());
        }
开发者ID:jamesqo,项目名称:SimpleInjector,代码行数:9,代码来源:SimpleInjectorWebExtensionsTests.cs

示例2: GetInstance_WithNoHttpContext_FailsWithExpectedException

        public void GetInstance_WithNoHttpContext_FailsWithExpectedException()
        {
            // Arrange
            Assert.IsNull(HttpContext.Current, "Test setup failed.");

            var container = new Container();

            container.RegisterPerWebRequest<ICommand, ConcreteCommand>();

            try
            {
                // Act
                container.GetInstance<ICommand>();

                // Assert
                Assert.Fail("Exception expected");
            }
            catch (ActivationException ex)
            {
                Assert.IsTrue(ex.Message.Contains(typeof(ICommand).Name), "Actual: " + ex.Message);
                Assert.IsTrue(
                    ex.Message.Contains("the instance is requested outside the context of a Web Request"),
                    "Actual: " + ex.Message);
            }
        }
开发者ID:jamesqo,项目名称:SimpleInjector,代码行数:25,代码来源:SimpleInjectorWebExtensionsTests.cs

示例3: RegisterPerWebRequest_CalledASingleTime_Succeeds

        public void RegisterPerWebRequest_CalledASingleTime_Succeeds()
        {
            // Arrange
            var container = new Container();

            // Act
            container.RegisterPerWebRequest<ConcreteCommand>();
        }
开发者ID:jamesqo,项目名称:SimpleInjector,代码行数:8,代码来源:SimpleInjectorWebExtensionsTests.cs

示例4: Verify_WithNoHttpContext_Succeeds

        public void Verify_WithNoHttpContext_Succeeds()
        {
            // Arrange
            Assert.IsNull(HttpContext.Current, "Test setup failed.");

            var container = new Container();

            container.RegisterPerWebRequest<ConcreteCommand>();

            // Act
            container.Verify();
        }
开发者ID:jamesqo,项目名称:SimpleInjector,代码行数:12,代码来源:SimpleInjectorWebExtensionsTests.cs

示例5: GetInstance_WithinHttpContext_ReturnsInstanceOfExpectedType

        public void GetInstance_WithinHttpContext_ReturnsInstanceOfExpectedType()
        {
            // Arrange
            var container = new Container();

            container.RegisterPerWebRequest<ICommand, ConcreteCommand>();

            using (new HttpContextScope())
            {
                // Act
                var actualInstance = container.GetInstance<ICommand>();

                // Assert
                AssertThat.IsInstanceOfType(typeof(ConcreteCommand), actualInstance);
            }
        }
开发者ID:jamesqo,项目名称:SimpleInjector,代码行数:16,代码来源:SimpleInjectorWebExtensionsTests.cs

示例6: GetInstance_CalledMultipleTimesWithinSingleLifetimeScope_ReturnsASingleInstance

        public void GetInstance_CalledMultipleTimesWithinSingleLifetimeScope_ReturnsASingleInstance()
        {
            // Arrange
            var container = new Container();

            container.RegisterPerWebRequest<ICommand, ConcreteCommand>();

            using (new HttpContextScope())
            {
                // Act
                var firstInstance = container.GetInstance<ICommand>();
                var secondInstance = container.GetInstance<ICommand>();

                // Assert
                Assert.IsTrue(object.ReferenceEquals(firstInstance, secondInstance));
            }
        }
开发者ID:jamesqo,项目名称:SimpleInjector,代码行数:17,代码来源:SimpleInjectorWebExtensionsTests.cs

示例7: Container

        public void GetInstance_CalledTwiceInOneScopeForDecoratedWebRequestInstance2_WrapsATransientDecoratorAroundAWebRequestInstance()
        {
            // Arrange
            var container = new Container();

            // Same as previous test, but now with RegisterDecorator called first.
            container.RegisterDecorator(typeof(ICommand), typeof(CommandDecorator));

            container.RegisterPerWebRequest<ICommand, ConcreteCommand>();

            using (new HttpContextScope())
            {
                // Act
                var decorator1 = (CommandDecorator)container.GetInstance<ICommand>();
                var decorator2 = (CommandDecorator)container.GetInstance<ICommand>();

                // Assert
                Assert.IsFalse(object.ReferenceEquals(decorator1, decorator2),
                    "The decorator should be transient but seems to have a scoped lifetime.");

                Assert.IsTrue(object.ReferenceEquals(decorator1.DecoratedInstance, decorator2.DecoratedInstance),
                    "The decorated instance should be scoped per lifetime. It seems to be transient.");
            }
        }
开发者ID:jamesqo,项目名称:SimpleInjector,代码行数:24,代码来源:SimpleInjectorWebExtensionsTests.cs

示例8: GetInstance_OnDecoratedLifetimeScopedInstance_WrapsTheInstanceWithTheDecorator

        public void GetInstance_OnDecoratedLifetimeScopedInstance_WrapsTheInstanceWithTheDecorator()
        {
            // Arrange
            var container = new Container();

            container.RegisterPerWebRequest<ICommand, ConcreteCommand>();

            container.RegisterDecorator(typeof(ICommand), typeof(CommandDecorator));

            using (new HttpContextScope())
            {
                // Act
                ICommand instance = container.GetInstance<ICommand>();

                // Assert
                AssertThat.IsInstanceOfType(typeof(CommandDecorator), instance);

                var decorator = (CommandDecorator)instance;

                AssertThat.IsInstanceOfType(typeof(ConcreteCommand), decorator.DecoratedInstance);
            }
        }
开发者ID:jamesqo,项目名称:SimpleInjector,代码行数:22,代码来源:SimpleInjectorWebExtensionsTests.cs

示例9: RegisterPerWebRequest_WithDisposal_EnsuresInstanceGetDisposedAfterRequestEnds

        public void RegisterPerWebRequest_WithDisposal_EnsuresInstanceGetDisposedAfterRequestEnds()
        {
            // Arrange
            var container = new Container();

            container.RegisterPerWebRequest<DisposableCommand>();

            DisposableCommand command;

            // Act
            using (new HttpContextScope())
            {
                command = container.GetInstance<DisposableCommand>();
            }

            // Assert
            Assert.IsTrue(command.HasBeenDisposed, "The instance was expected to be disposed.");
        }
开发者ID:jamesqo,项目名称:SimpleInjector,代码行数:18,代码来源:SimpleInjectorWebExtensionsTests.cs

示例10: RegisterPerWebRequest_CalledAfterInitialization_ThrowsExpectedException

        public void RegisterPerWebRequest_CalledAfterInitialization_ThrowsExpectedException()
        {
            // Arrange
            var container = new Container();

            // This locks the container.
            container.GetInstance<ConcreteCommand>();

            try
            {
                // Act
                container.RegisterPerWebRequest<ICommand, ConcreteCommand>();

                // Assert
                Assert.Fail("Exception expected.");
            }
            catch (InvalidOperationException ex)
            {
                Assert.IsTrue(ex.Message.Contains("The container can't be changed"),
                    "Actual: " + ex.Message);
            }
        }
开发者ID:jamesqo,项目名称:SimpleInjector,代码行数:22,代码来源:SimpleInjectorWebExtensionsTests.cs

示例11: GetInstance_CalledMultipleTimesOnAPerWebRequestServiceWithinASingleScope_DisposesThatInstanceOnce

        public void GetInstance_CalledMultipleTimesOnAPerWebRequestServiceWithinASingleScope_DisposesThatInstanceOnce()
        {
            // Arrange
            var container = new Container();

            container.RegisterPerWebRequest<DisposableCommand>();

            DisposableCommand command;

            // Act
            using (new HttpContextScope())
            {
                command = container.GetInstance<DisposableCommand>();

                container.GetInstance<DisposableCommand>();
                container.GetInstance<DisposableCommand>();
            }

            // Assert
            Assert.AreEqual(1, command.DisposeCount, "Dispose should be called exactly once.");
        }
开发者ID:jamesqo,项目名称:SimpleInjector,代码行数:21,代码来源:SimpleInjectorWebExtensionsTests.cs

示例12: GetInstance_WithinAWebRequest_NeverDisposesASingleton

        public void GetInstance_WithinAWebRequest_NeverDisposesASingleton()
        {
            // Arrange
            var container = new Container();

            container.Register<DisposableCommand>(Lifestyle.Singleton);

            container.RegisterPerWebRequest<IDisposable, DisposableCommand>();

            DisposableCommand singleton;

            // Act
            using (new HttpContextScope())
            {
                singleton = container.GetInstance<DisposableCommand>();
            }

            // Assert
            Assert.IsFalse(singleton.HasBeenDisposed, "Singletons should not be disposed.");
        }
开发者ID:jamesqo,项目名称:SimpleInjector,代码行数:20,代码来源:SimpleInjectorWebExtensionsTests.cs

示例13: GetInstance_OnPerWebRequesstInstance_WillNotBeDisposedDuringTheRequest

        public void GetInstance_OnPerWebRequesstInstance_WillNotBeDisposedDuringTheRequest()
        {
            // Arrange
            var container = new Container();

            container.RegisterPerWebRequest<DisposableCommand>();

            // Act
            using (new HttpContextScope())
            {
                var command = container.GetInstance<DisposableCommand>();

                // Assert
                Assert.IsFalse(command.HasBeenDisposed, "The instance should not be disposed inside the scope.");
            }
        }
开发者ID:jamesqo,项目名称:SimpleInjector,代码行数:16,代码来源:SimpleInjectorWebExtensionsTests.cs

示例14: RegisterChocolateySpecific

 private void RegisterChocolateySpecific(Container container)
 {
     container.RegisterPerWebRequest<IUserSiteProfilesService, UserSiteProfilesService>();
     container.RegisterPerWebRequest<IEntityRepository<UserSiteProfile>, EntityRepository<UserSiteProfile>>();
     container.Register<IImageFileService, ImageFileService>(Lifestyle.Singleton);
     container.RegisterPerWebRequest<IEntityRepository<ScanResult>, EntityRepository<ScanResult>>();
     container.RegisterPerWebRequest<IScanService, ScanService>();
 }
开发者ID:chocolatey,项目名称:chocolatey.org,代码行数:8,代码来源:ContainerBinding.cs

示例15: GetInstance_PerWebRequestFuncInstanceWithInitializer_CallsInitializerOncePerWebRequest

        public void GetInstance_PerWebRequestFuncInstanceWithInitializer_CallsInitializerOncePerWebRequest()
        {
            // Arrange
            int callCount = 0;

            var container = new Container();

            container.RegisterPerWebRequest<ICommand>(() => new ConcreteCommand());

            container.RegisterInitializer<ICommand>(command => { callCount++; });

            using (new HttpContextScope())
            {
                // Act
                container.GetInstance<ICommand>();
                container.GetInstance<ICommand>();
            }

            // Assert
            Assert.AreEqual(1, callCount, "The initializer for ICommand is expected to get fired once.");
        }
开发者ID:jamesqo,项目名称:SimpleInjector,代码行数:21,代码来源:SimpleInjectorWebExtensionsTests.cs


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