本文整理汇总了C#中System.Web.Mvc.ControllerBuilder.SetControllerFactory方法的典型用法代码示例。如果您正苦于以下问题:C# ControllerBuilder.SetControllerFactory方法的具体用法?C# ControllerBuilder.SetControllerFactory怎么用?C# ControllerBuilder.SetControllerFactory使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Web.Mvc.ControllerBuilder
的用法示例。
在下文中一共展示了ControllerBuilder.SetControllerFactory方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ProcessRequestWithNormalControlFlowForAsynchronousController
public void ProcessRequestWithNormalControlFlowForAsynchronousController() {
// Arrange
Mock<HttpContextBase> mockHttpContext = new Mock<HttpContextBase>();
mockHttpContext.ExpectMvcVersionResponseHeader().Verifiable();
RequestContext requestContext = new RequestContext(mockHttpContext.Object, GetRouteData());
MvcAsyncHandler handler = new MvcAsyncHandler(requestContext);
MockAsyncResult asyncResult = new MockAsyncResult();
Mock<IAsyncController> mockController = new Mock<IAsyncController>();
mockController.Expect(c => c.BeginExecute(requestContext, It.IsAny<AsyncCallback>(), It.IsAny<object>())).Returns(asyncResult).Verifiable();
mockController.Expect(c => c.EndExecute(asyncResult)).Verifiable();
mockController.As<IDisposable>().Expect(c => c.Dispose()).AtMostOnce().Verifiable();
ControllerBuilder builder = new ControllerBuilder();
builder.SetControllerFactory(new SimpleControllerFactory(mockController.Object));
handler.ControllerBuilder = builder;
// Act
IAsyncResult returnedAsyncResult = handler.BeginProcessRequest(mockHttpContext.Object, null, null);
handler.EndProcessRequest(returnedAsyncResult);
mockHttpContext.Verify();
mockController.Verify();
}
示例2: ProcessRequestWhereControllerBeginExecuteThrows
public void ProcessRequestWhereControllerBeginExecuteThrows() {
// Arrange
Mock<HttpContextBase> mockHttpContext = new Mock<HttpContextBase>();
mockHttpContext.ExpectMvcVersionResponseHeader().Verifiable();
RequestContext requestContext = new RequestContext(mockHttpContext.Object, GetRouteData());
MvcAsyncHandler handler = new MvcAsyncHandler(requestContext);
Mock<IAsyncController> mockController = new Mock<IAsyncController>();
mockController.Expect(c => c.BeginExecute(requestContext, It.IsAny<AsyncCallback>(), It.IsAny<object>())).Throws(new InvalidOperationException("Some exception text.")).Verifiable();
mockController.As<IDisposable>().Expect(c => c.Dispose()).AtMostOnce().Verifiable();
ControllerBuilder builder = new ControllerBuilder();
builder.SetControllerFactory(new SimpleControllerFactory(mockController.Object));
handler.ControllerBuilder = builder;
// Act
ExceptionHelper.ExpectInvalidOperationException(
delegate {
handler.BeginProcessRequest(mockHttpContext.Object, null, null);
},
@"Some exception text.");
mockHttpContext.Verify();
mockController.Verify();
}
示例3: ProcessRequestAddsServerHeaderCallsExecute
public void ProcessRequestAddsServerHeaderCallsExecute() {
// Arrange
Mock<HttpContextBase> contextMock = new Mock<HttpContextBase>();
contextMock.ExpectMvcVersionResponseHeader().Verifiable();
RouteData rd = new RouteData();
rd.Values.Add("controller", "foo");
RequestContext requestContext = new RequestContext(contextMock.Object, rd);
MvcHandler mvcHandler = new MvcHandler(requestContext);
Mock<ControllerBase> controllerMock = new Mock<ControllerBase>();
controllerMock.Protected().Setup("Execute", requestContext).Verifiable();
ControllerBuilder cb = new ControllerBuilder();
Mock<IControllerFactory> controllerFactoryMock = new Mock<IControllerFactory>();
controllerFactoryMock.Setup(o => o.CreateController(requestContext, "foo")).Returns(controllerMock.Object);
controllerFactoryMock.Setup(o => o.ReleaseController(controllerMock.Object));
cb.SetControllerFactory(controllerFactoryMock.Object);
mvcHandler.ControllerBuilder = cb;
// Act
mvcHandler.ProcessRequest(contextMock.Object);
// Assert
contextMock.Verify();
controllerMock.Verify();
}
示例4: RegisterControllerFactory
public static void RegisterControllerFactory(ControllerBuilder controllerBuilder, IEngine engine)
{
engine.RegisterControllers(Assembly.GetExecutingAssembly());
var controllerFactory = engine.Resolve<ControllerFactoryConfigurator>()
//.NotFound<StartController>(sc => sc.NotFound())
.ControllerFactory;
controllerBuilder.SetControllerFactory(controllerFactory);
}
示例5: RegisterControllerFactory
public void RegisterControllerFactory(ControllerBuilder controllerBuilder, IEngine engine)
{
engine.RegisterAllControllers();
var controllerFactory = engine.Resolve<ControllerFactoryConfigurator>()
.NotFound<StartController>(sc => sc.NotFound())
.ControllerFactory;
controllerBuilder.SetControllerFactory(controllerFactory);
}
示例6: RegisterControllerFactory
public static void RegisterControllerFactory(ControllerBuilder controllerBuilder, IEngine engine)
{
// Registers controllers in the solution for dependency injection using the IoC container provided by N2
engine.RegisterAllControllers();
var controllerFactory = engine.Resolve<ControllerFactoryConfigurator>()
.NotFound<Controllers.StartPageController>(sc => sc.NotFound())
.ControllerFactory;
controllerBuilder.SetControllerFactory(controllerFactory);
}
示例7: CreateControllerWithFactoryInstanceReturnsInstance
public void CreateControllerWithFactoryInstanceReturnsInstance() {
// Arrange
ControllerBuilder cb = new ControllerBuilder();
DefaultControllerFactory factory = new DefaultControllerFactory();
cb.SetControllerFactory(factory);
// Act
IControllerFactory cf = cb.GetControllerFactory();
// Assert
Assert.AreSame(factory, cf);
}
示例8: Start
public static void Start(HttpConfiguration config, ControllerBuilder builder)
{
// innitialize the IoC using Structure Map.
IoC.Initialize();
var container = ObjectFactory.Container;
// Standard settings for SM for MVC4.
config.DependencyResolver = new SmDependencyResolver(container);
// Used as a test to overide some issues with Injecting dependenices on Api controllers.
// Though the Api controllers are not used in this version of the application
builder.SetControllerFactory(new StructureMapControllerFactory());
}
示例9: RegisterMvc
public static void RegisterMvc(ControllerBuilder controllerBuilder, GlobalFilterCollection globalFilters)
{
//controllers
Container.Register<IController, HomeController>("Home").AsMultiInstance();
//filters
var filters = Container.ResolveAll<IMvcFilter>();
foreach (var filter in filters)
{
globalFilters.Add(filter);
}
//controller factory
controllerBuilder.SetControllerFactory(new TinyIocControllerFactory(Container));
}
示例10: CreateControllerWithFactoryThatCannotBeCreatedThrows
public void CreateControllerWithFactoryThatCannotBeCreatedThrows() {
// Arrange
ControllerBuilder cb = new ControllerBuilder();
cb.SetControllerFactory(typeof(ControllerFactoryThrowsFromConstructor));
// Act
ExceptionHelper.ExpectException<InvalidOperationException>(
delegate {
RequestContext reqContext = new RequestContext(new Mock<HttpContextBase>().Object, new RouteData());
reqContext.RouteData.Values["controller"] = "foo";
MvcHandlerWithNoVersionHeader handler = new MvcHandlerWithNoVersionHeader(reqContext) {
ControllerBuilder = cb
};
handler.ProcessRequest(reqContext.HttpContext);
},
"An error occurred when trying to create the IControllerFactory 'System.Web.Mvc.Test.ControllerBuilderTest+ControllerFactoryThrowsFromConstructor'. Make sure that the controller factory has a public parameterless constructor.");
}
示例11: CreateControllerWithFactoryThatReturnsNullThrows
public void CreateControllerWithFactoryThatReturnsNullThrows() {
// Arrange
ControllerBuilder cb = new ControllerBuilder();
cb.SetControllerFactory(typeof(ControllerFactoryReturnsNull));
// Act
ExceptionHelper.ExpectException<InvalidOperationException>(
delegate {
RequestContext reqContext = new RequestContext(new Mock<HttpContextBase>().Object, new RouteData());
reqContext.RouteData.Values["controller"] = "boo";
MvcHandlerWithNoVersionHeader handler = new MvcHandlerWithNoVersionHeader(reqContext) {
ControllerBuilder = cb
};
handler.ProcessRequest(reqContext.HttpContext);
},
"The IControllerFactory 'System.Web.Mvc.Test.ControllerBuilderTest+ControllerFactoryReturnsNull' did not return a controller for the name 'boo'.");
}
示例12: CreateControllerWithFactoryThatThrowsDoesNothingSpecial
public void CreateControllerWithFactoryThatThrowsDoesNothingSpecial() {
// Arrange
ControllerBuilder cb = new ControllerBuilder();
cb.SetControllerFactory(typeof(ControllerFactoryThrows));
// Act
ExceptionHelper.ExpectException<Exception>(
delegate {
RequestContext reqContext = new RequestContext(new Mock<HttpContextBase>().Object, new RouteData());
reqContext.RouteData.Values["controller"] = "foo";
MvcHandlerWithNoVersionHeader handler = new MvcHandlerWithNoVersionHeader(reqContext) {
ControllerBuilder = cb
};
handler.ProcessRequest(reqContext.HttpContext);
},
"ControllerFactoryThrows");
}
示例13: GetHttpHandlerWithValidControllerDoesNotChangeRouteTest
public void GetHttpHandlerWithValidControllerDoesNotChangeRouteTest()
{
// Arrange
var mockController = new Mock<ControllerBase>(MockBehavior.Strict);
var expected = "fooController";
var builder = new ControllerBuilder();
builder.SetControllerFactory(new SimpleControllerFactory(mockController.Object));
var contextMock = new Mock<HttpContextBase>();
var requestContext = new RequestContext(contextMock.Object, new RouteData());
requestContext.RouteData.Values["controller"] = expected;
// act
var handler = new PhunMvcRouteHandler() { ControllerBuilder = builder };
handler.PreHandleRequestInternal(requestContext);
// Assert
Assert.AreEqual(expected, requestContext.RouteData.Values["controller"]);
}
示例14: SetSessionStateMode_HandlerIsMvcHandler_ControllerHasNoAttribute_SetsDefault
public void SetSessionStateMode_HandlerIsMvcHandler_ControllerHasNoAttribute_SetsDefault() {
// Arrange
RequestContext requestContext = GetRequestContext();
IHttpHandler originalHttpHandler = requestContext.HttpContext.Handler;
Mock<IControllerFactory> mockControllerFactory = new Mock<IControllerFactory>();
mockControllerFactory.Expect(o => o.CreateController(requestContext, "home")).Returns(new ControllerWithoutAttribute());
ControllerBuilder controllerBuilder = new ControllerBuilder();
controllerBuilder.SetControllerFactory(new MvcDynamicSessionControllerFactory(mockControllerFactory.Object));
MvcDynamicSessionModule module = new MvcDynamicSessionModule() {
ControllerBuilder = controllerBuilder
};
// Act
module.SetSessionStateMode(requestContext.HttpContext, SimpleDynamicSessionStateConfigurator.ExpectMode(ControllerSessionState.Default));
// Assert
Assert.AreEqual(2, requestContext.HttpContext.Items.Count, "Cache + factory weren't properly added to Items.");
}
示例15: ProcessRequestThrowsIfControllerNotFound
public void ProcessRequestThrowsIfControllerNotFound() {
// Arrange
Mock<HttpContextBase> mockHttpContext = new Mock<HttpContextBase>();
mockHttpContext.ExpectMvcVersionResponseHeader().Verifiable();
RequestContext requestContext = new RequestContext(mockHttpContext.Object, GetRouteData());
MvcAsyncHandler handler = new MvcAsyncHandler(requestContext);
ControllerBuilder builder = new ControllerBuilder();
builder.SetControllerFactory(new SimpleControllerFactory(null));
handler.ControllerBuilder = builder;
// Act & assert
ExceptionHelper.ExpectInvalidOperationException(
delegate {
handler.BeginProcessRequest(mockHttpContext.Object, null, null);
},
@"The IControllerFactory 'Microsoft.Web.Mvc.Test.MvcAsyncHandlerTest+SimpleControllerFactory' did not return a controller for a controller named 'Foo'.");
mockHttpContext.Verify();
}