public IController CreateController(RequestContext requestContext, string controllerName)
{
IContainerAccessor containerAccessor =
requestContext.HttpContext.ApplicationInstance as IContainerAccessor;
//TODO: this needs to be cached
Assembly currentAssembly = Assembly.GetExecutingAssembly();
var controllerTypes = from t in currentAssembly.GetTypes()
where t.Name.Contains(controllerName + "Controller")
select t;
if (controllerTypes.Count() > 0)
{
//contruct the controller using the unity container.
return containerAccessor.Container.Resolve(controllerTypes.First()) as IController;
}
else
{
return null;
}
}