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


C# HttpConfiguration.Initializer方法代码示例

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


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

示例1: ApplyControllerSettings

        internal static HttpConfiguration ApplyControllerSettings(HttpControllerSettings settings, HttpConfiguration configuration)
        {
            if (!settings.IsFormatterCollectionInitialized && !settings.IsParameterBindingRuleCollectionInitialized && !settings.IsServiceCollectionInitialized)
            {
                return configuration;
            }

            // Create a clone of the original configuration, including its initialization rules.
            // Invoking Initialize therefore initializes the cloned config the same way as the original.
            HttpConfiguration newConfiguration = new HttpConfiguration(configuration, settings);
            newConfiguration.Initializer(newConfiguration);
            return newConfiguration;
        }
开发者ID:chrissimon-au,项目名称:aspnetwebstack,代码行数:13,代码来源:HttpConfiguration.cs

示例2: ApplyControllerSettings_Clone_Can_Enable_Tracing_When_Original_Disabled_It

        public void ApplyControllerSettings_Clone_Can_Enable_Tracing_When_Original_Disabled_It()
        {
            // Arrange
            bool calledTrace = false;
            HttpConfiguration config = new HttpConfiguration();
            Mock<ITraceWriter> mockTracer = new Mock<ITraceWriter>() { CallBase = true };
            mockTracer.Setup(m => m.Trace(It.IsAny<HttpRequestMessage>(),
                                          It.IsAny<string>(),
                                          It.IsAny<TraceLevel>(),
                                          It.IsAny<Action<TraceRecord>>())).Callback(() => { calledTrace = true; });

            config.Initializer(config);    // ensures TraceManager is called, but it will be a NOP

            HttpControllerSettings settings = new HttpControllerSettings(config);
            settings.Services.Replace(typeof(ITraceWriter), mockTracer.Object);

            // Act
            HttpConfiguration clonedConfig = HttpConfiguration.ApplyControllerSettings(settings, config);
            clonedConfig.Services.GetContentNegotiator().Negotiate(typeof(string), new HttpRequestMessage(), Enumerable.Empty<MediaTypeFormatter>());

            // Assert
            Assert.True(calledTrace);
        }
开发者ID:chrissimon-au,项目名称:aspnetwebstack,代码行数:23,代码来源:HttpConfigurationTest.cs

示例3: MapHttpAttributeRoutes_AddsLinkGenerationRoutes

        public void MapHttpAttributeRoutes_AddsLinkGenerationRoutes()
        {
            // Arrange
            HttpConfiguration config = new HttpConfiguration();
            var routePrefixes = new Collection<IRoutePrefix>() { };
            var routeProviders = new Collection<RouteAttribute>()
                {
                    new RouteAttribute("get1") { Name = "one" },
                    new RouteAttribute("get2") { Name = "two" },
                    new RouteAttribute("get3") { Name = "three" }
                };
            SetUpConfiguration(config, routePrefixes, routeProviders);

            // Act
            config.MapHttpAttributeRoutes();
            config.Initializer(config);

            // Assert
            HttpRouteCollection routes = config.Routes;
            Assert.Equal(4, routes.Count); // 1 attr route, plus 3 generation routes
            Assert.IsType<RouteCollectionRoute>(routes.ElementAt(0));
            for (int i = 1; i < 4; i++)
            {
                Assert.IsType<LinkGenerationRoute>(routes.ElementAt(i));
            }

            Assert.IsType<LinkGenerationRoute>(routes["one"]);
            Assert.IsType<LinkGenerationRoute>(routes["two"]);
            Assert.IsType<LinkGenerationRoute>(routes["three"]);
        }
开发者ID:tlycken,项目名称:aspnetwebstack,代码行数:30,代码来源:HttpConfigurationExtensionsTest.cs

示例4: ApplyControllerSettings_Clone_Inherits_Tracing_On_PerController_Services

        public void ApplyControllerSettings_Clone_Inherits_Tracing_On_PerController_Services()
        {
            // Arrange
            bool calledTrace = false;
            HttpConfiguration config = new HttpConfiguration();
            Mock<ITraceWriter> mockTracer = new Mock<ITraceWriter>() { CallBase = true };
            mockTracer.Setup(m => m.Trace(It.IsAny<HttpRequestMessage>(),
                                          It.IsAny<string>(),
                                          It.IsAny<TraceLevel>(),
                                          It.IsAny<Action<TraceRecord>>())).Callback(() => { calledTrace = true; });

            config.Services.Replace(typeof(ITraceWriter), mockTracer.Object);
            config.Initializer(config);    // installs tracer on original config

            HttpControllerSettings settings = new HttpControllerSettings(config);
            Mock<IContentNegotiator> mockNegotiator = new Mock<IContentNegotiator>() { CallBase = true };
            settings.Services.Replace(typeof(IContentNegotiator), mockNegotiator.Object);

            // Act
            HttpConfiguration clonedConfig = HttpConfiguration.ApplyControllerSettings(settings, config);
            clonedConfig.Services.GetContentNegotiator().Negotiate(typeof(string), new HttpRequestMessage(), Enumerable.Empty<MediaTypeFormatter>());

            // Assert
            Assert.True(calledTrace);
        }
开发者ID:chrissimon-au,项目名称:aspnetwebstack,代码行数:25,代码来源:HttpConfigurationTest.cs

示例5: ApplyControllerSettings_Clone_Inherits_Tracing_On_PerController_Formatters

        public void ApplyControllerSettings_Clone_Inherits_Tracing_On_PerController_Formatters()
        {
            // Arrange
            bool calledTrace = false;
            HttpConfiguration config = new HttpConfiguration();
            Mock<ITraceWriter> mockTracer = new Mock<ITraceWriter>() { CallBase = true };
            mockTracer.Setup(m => m.Trace(It.IsAny<HttpRequestMessage>(),
                                          It.IsAny<string>(),
                                          It.IsAny<TraceLevel>(),
                                          It.IsAny<Action<TraceRecord>>())).Callback(() => { calledTrace = true; });

            config.Services.Replace(typeof(ITraceWriter), mockTracer.Object);
            config.Initializer(config);    // installs tracer on original config

            HttpControllerSettings settings = new HttpControllerSettings(config);
            Mock<MediaTypeFormatter> mockFormatter = new Mock<MediaTypeFormatter>() { CallBase = true };
            settings.Formatters.Clear();
            settings.Formatters.Add(mockFormatter.Object);

            // Act
            HttpConfiguration clonedConfig = HttpConfiguration.ApplyControllerSettings(settings, config);
            clonedConfig.Formatters[0].GetPerRequestFormatterInstance(typeof(string), new HttpRequestMessage(), new MediaTypeHeaderValue("application/mine"));

            // Assert
            Assert.True(calledTrace);
        }
开发者ID:chrissimon-au,项目名称:aspnetwebstack,代码行数:26,代码来源:HttpConfigurationTest.cs

示例6: Initialize_Can_Be_Chained

        public void Initialize_Can_Be_Chained()
        {
            // Arrange
            HttpConfiguration config1 = new HttpConfiguration();
            HttpConfiguration configPassedToAction1 = null;
            config1.Initializer = (c) => configPassedToAction1 = c;

            HttpConfiguration config2 = new HttpConfiguration();
            HttpConfiguration configPassedToAction2 = null;
            config2.Initializer = (c) => { config1.Initializer(config1); configPassedToAction2 = c; };

            // Act
            config2.Initializer(config2);

            // Assert
            Assert.Same(config1, configPassedToAction1);
            Assert.Same(config2, configPassedToAction2);
        }
开发者ID:chrissimon-au,项目名称:aspnetwebstack,代码行数:18,代码来源:HttpConfigurationTest.cs

示例7: Initialize_Initializer_Can_Be_Reused

        public void Initialize_Initializer_Can_Be_Reused()
        {
            // Arrange
            HttpConfiguration config1 = new HttpConfiguration();
            HttpConfiguration configPassedToAction = null;
            config1.Initializer = (c) => configPassedToAction = c;

            HttpConfiguration config2 = new HttpConfiguration();
            config2.Initializer = config1.Initializer;

            // Act
            config2.Initializer(config2);

            // Assert
            Assert.Same(config2, configPassedToAction);
        }
开发者ID:chrissimon-au,项目名称:aspnetwebstack,代码行数:16,代码来源:HttpConfigurationTest.cs

示例8: Initialize_Default_Initializer_Can_Be_Removed

        public void Initialize_Default_Initializer_Can_Be_Removed()
        {
            // Arrange
            var config = new HttpConfiguration();
            config.Initializer = (c) => { };
            bool initializeCalled = false;
            Mock<ITraceManager> mock = new Mock<ITraceManager>() { CallBase = true };
            mock.Setup(m => m.Initialize(config)).Callback(() => initializeCalled = true);
            config.Services.Replace(typeof(ITraceManager), mock.Object);

            // Act
            config.Initializer(config);

            // Assert
            Assert.False(initializeCalled);
        }
开发者ID:chrissimon-au,项目名称:aspnetwebstack,代码行数:16,代码来源:HttpConfigurationTest.cs

示例9: Initializer_Sets_Formatter_RequiredMemberSelector_By_Default

        public void Initializer_Sets_Formatter_RequiredMemberSelector_By_Default()
        {
            // Arrange
            var config = new HttpConfiguration();
            Mock<MediaTypeFormatter> mockFormatter = new Mock<MediaTypeFormatter>() { CallBase = true };
            mockFormatter.Object.RequiredMemberSelector = null;

            config.Formatters.Clear();
            config.Formatters.Add(mockFormatter.Object);

            // Act
            config.Initializer(config);

            // Assert
            Assert.NotNull(mockFormatter.Object.RequiredMemberSelector);
        }
开发者ID:chrissimon-au,项目名称:aspnetwebstack,代码行数:16,代码来源:HttpConfigurationTest.cs

示例10: Initializer_Initializes_TraceManager_By_Default

        public void Initializer_Initializes_TraceManager_By_Default()
        {
            // Arrange
            var config = new HttpConfiguration();
            Mock<ITraceManager> mock = new Mock<ITraceManager>() { CallBase = true };
            mock.Setup(m => m.Initialize(config)).Verifiable();
            config.Services.Replace(typeof(ITraceManager), mock.Object);

            // Act
            config.Initializer(config);

            // Assert
            mock.Verify();
        }
开发者ID:chrissimon-au,项目名称:aspnetwebstack,代码行数:14,代码来源:HttpConfigurationTest.cs


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