using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; using System.Web.Mvc; using Umbraco.Core; using Umbraco.Core.ObjectResolution; using Umbraco.Core.Plugins; namespace Umbraco.Web.Mvc { /// /// A resolver used to resolve the default RenderMvcController that is used to render any front-end /// Umbraco page when using MVC when there are no routes hijacked. /// public class DefaultRenderMvcControllerResolver : SingleObjectResolverBase { /// /// Constructor accepting the default RenderMvcController /// /// public DefaultRenderMvcControllerResolver(Type value) : base(value) { ValidateType(value); } /// /// Returns the Default RenderMvcController type /// /// public Type GetDefaultControllerType() { return Value; } /// /// Sets the default RenderMvcController type /// /// public void SetDefaultControllerType(Type controllerType) { ValidateType(controllerType); Value = controllerType; } /// /// Ensures that the type passed in is of type RenderMvcController /// /// private void ValidateType(Type type) { if (TypeHelper.IsTypeAssignableFrom(type) == false) { throw new InvalidOperationException("The Type specified (" + type + ") is not of type " + typeof (IRenderController)); } } } }