/// <summary> /// Registers the specified instance. /// </summary> /// <typeparam name="TModelBinder">The type of the action invoker.</typeparam> /// <param name="instance">The instance.</param> /// <param name="typeCatalog">The type catalog.</param> /// <returns></returns> public static TypeMappingRegistry <object, IModelBinder> Register <TModelBinder>(this TypeMappingRegistry <object, IModelBinder> instance, TypeCatalog typeCatalog) where TModelBinder : IModelBinder { Invariant.IsNotNull(instance, "instance"); Invariant.IsNotNull(typeCatalog, "typeCatalog"); Type modelBinderType = typeof(TModelBinder); foreach (Type modelType in typeCatalog.ToList()) { instance.Register(modelType, modelBinderType); } return(instance); }
public static TypeMappingRegistry <Controller, IActionInvoker> Register <TActionInvoker>([NotNull] this TypeMappingRegistry <Controller, IActionInvoker> instance, [NotNull] TypeCatalog typeCatalog) where TActionInvoker : IActionInvoker { Invariant.IsNotNull(instance, "instance"); Invariant.IsNotNull(typeCatalog, "typeCatalog"); IList <Type> controllerTypes = typeCatalog.ToList(); EnsureControllerTypes(controllerTypes); Type actionInvokerType = typeof(TActionInvoker); foreach (Type controllerType in controllerTypes) { instance.Register(controllerType, actionInvokerType); } return(instance); }
/// <summary> /// Registers the specified instance. /// </summary> /// <typeparam name="TViewPageActivator">The type of the view page activator.</typeparam> /// <param name="instance">The instance.</param> /// <param name="typeCatalog">The type catalog.</param> /// <returns></returns> public static TypeMappingRegistry <IView, IViewPageActivator> Register <TViewPageActivator>(this TypeMappingRegistry <IView, IViewPageActivator> instance, TypeCatalog typeCatalog) { Invariant.IsNotNull(instance, "instance"); Invariant.IsNotNull(typeCatalog, "typeCatalog"); IList <Type> viewTypes = typeCatalog.ToList(); EnsureViewTypes(viewTypes); Type viewPageActivatorType = typeof(TViewPageActivator); foreach (Type viewType in viewTypes) { instance.Register(viewType, viewPageActivatorType); } return(instance); }
/// <summary> /// Registers the specified instance. /// </summary> /// <typeparam name="TControllerActivator">The type of the action invoker.</typeparam> /// <param name="instance">The instance.</param> /// <param name="typeCatalog">The type catalog.</param> /// <returns></returns> public static TypeMappingRegistry <Controller, IControllerActivator> Register <TControllerActivator>(this TypeMappingRegistry <Controller, IControllerActivator> instance, TypeCatalog typeCatalog) where TControllerActivator : IControllerActivator { Invariant.IsNotNull(instance, "instance"); Invariant.IsNotNull(typeCatalog, "typeCatalog"); IList <Type> controllerTypes = typeCatalog.ToList(); EnsureControllerTypes(controllerTypes); Type controllerActivatorType = typeof(TControllerActivator); foreach (Type controllerType in controllerTypes) { instance.Register(controllerType, controllerActivatorType); } return(instance); }
/// <summary> /// Registers and configures the specified filter for the given controller types. /// </summary> /// <typeparam name="TFilter">The type of the filter.</typeparam> /// <param name="instance">The instance.</param> /// <param name="typeCatalog">The controller types.</param> /// <param name="configureFilter">The configure filter action.</param> /// <returns></returns> public static IFilterRegistry Register <TFilter>(this IFilterRegistry instance, TypeCatalog typeCatalog, Action <TFilter> configureFilter) where TFilter : IMvcFilter { Invariant.IsNotNull(instance, "instance"); Invariant.IsNotNull(typeCatalog, "typeCatalog"); Invariant.IsNotNull(configureFilter, "configureFilter"); IList <Type> controllerTypeList = typeCatalog.ToList(); EnsureControllerTypes(controllerTypeList); foreach (Type itemType in controllerTypeList.Select(controllerType => genericControllerItemType.MakeGenericType(controllerType))) { instance.Items.Add(Activator.CreateInstance(itemType, new object[] { CreateAndConfigureFilterFactory(instance, configureFilter) }) as FilterRegistryItem); } return(instance); }