本文整理汇总了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;
}
示例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);
}
示例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"]);
}
示例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);
}
示例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);
}
示例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);
}
示例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);
}
示例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);
}
示例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);
}
示例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();
}