/// <summary> /// Gets the model instance. /// </summary> /// <typeparam name="T">Type of the model.</typeparam> /// <param name="controllerType">The type of the controller for which the model is being resolved.</param> /// <param name="constructorParameters">The constructor parameters.</param> /// <returns>The model instance.</returns> public static T GetModel <T>(Type controllerType, IDictionary <string, object> constructorParameters = null) { using (var kernel = new StandardKernel()) { var assemblies = ControllerModelFactory.GetTypeHierarchyAssemblies(controllerType); kernel.Load(assemblies); var parameters = new List <ConstructorArgument>(); if (constructorParameters != null && constructorParameters.Any()) { foreach (var param in constructorParameters) { parameters.Add(new ConstructorArgument(param.Key, param.Value)); } } return(kernel.Get <T>(parameters.ToArray())); } }
/// <summary> /// Gets the model instance. /// </summary> /// <typeparam name="T">Type of the model.</typeparam> /// <param name="controllerType">The type of the controller for which the model is being resolved.</param> /// <param name="constructorParameters">The constructor parameters.</param> /// <returns>The model instance.</returns> public static T GetModel <T>(Type controllerType, IDictionary <string, object> constructorParameters = null) { if (controllerType == null) { throw new ArgumentNullException("controllerType"); } ConstructorArgument[] parameters; if (constructorParameters != null && constructorParameters.Count > 0) { parameters = new ConstructorArgument[constructorParameters.Count]; int i = 0; foreach (var param in constructorParameters) { parameters[i] = new ConstructorArgument(param.Key, param.Value); i++; } } else { parameters = new ConstructorArgument[0]; } if (FrontendModule.Current != null) { return(FrontendModule.Current.DependencyResolver.Get <T>(parameters)); } else { using (var kernel = new StandardKernel()) { kernel.Load(ControllerModelFactory.GetTypeHierarchyAssemblies(controllerType)); return(kernel.Get <T>(parameters)); } } }