Todavía estoy tratando de resolver las cosas con StructureMap y uno de los problemas con los que me estoy tropezando es con la clase de mi Controller Factory explotando cuando se le pasa un tipo de controlador nulo. Esto solo ocurre cuando la aplicación se compila por primera vez, después de lo cual cada compilación subsiguiente funciona bien. Incluso cuando apago Visual Studio y vuelvo a abrir el proyecto (no estoy ejecutando esto en IIS). Es casi como si hubiera algún tipo de almacenamiento en caché. Así es como se ve la clase de controlador:Controlador StructureMap instancia de controlador y controlador nulo en MVC
public class IocControllerFactory : DefaultControllerFactory
{
protected override IController GetControllerInstance(Type controllerType)
{
try
{
return (Controller)ObjectFactory.GetInstance(controllerType);
}
catch (StructureMapException)
{
System.Diagnostics.Debug.WriteLine(ObjectFactory.WhatDoIHave());
throw;
}
}
}
¿Qué podría estar mal? ¿Debo tener todos los controladores registrados? Gracias.
¿qué quiere decir con un controlador nulo que se le pasó? – David
Me refiero a una referencia nula del tipo de controlador que se pasa a GetControllerInstance(). Lo que no entiendo es de dónde viene esa referencia nula. Supongo que el marco MVC está pasando una instancia de controlador nulo? Inicialmente pensé que tenía algo que ver con StructureMap, pero no se parece al caso. Supongo que puedo poner un cheque para un nulo en el método, pero preferiría descubrir por qué está haciendo lo que está haciendo. Lo más extraño es que ocurre después de abrir el proyecto y compilarlo por primera vez en Visual Studio después de reiniciar. Funciona cada vez después de eso. –
Me encuentro con el mismo problema. Alguien tiene una solución para esto todavía? –