sto ancora cercando di capire le cose con StructureMap e una delle questioni che sto funzionando in è la mia classe Controller fabbrica saltare in aria quando un tipo di controller nulla viene passato ad esso. Ciò accade solo quando l'applicazione viene creata per la prima volta, dopodiché ogni build successiva funziona correttamente. Anche quando spengo Visual Studio e riapro il progetto (non sto eseguendo questo in IIS). È quasi come se ci fosse una sorta di caching in corso. Ecco come si presenta la classe controller:StructureMap fabbrica controller e istanza di controllo nullo in 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;
}
}
}
Cosa potrebbe essere che non va? Devo avere registrato ogni controller? Grazie.
cosa intendi con un controller Null passato? – David
Intendo un riferimento null del tipo di controller passato a GetControllerInstance(). Quello che non capisco è da dove viene quel riferimento nullo. Immagino che il framework MVC stia passando un'istanza del controller nulla? Inizialmente pensavo che avesse qualcosa a che fare con StructureMap, ma non sembra il caso. Immagino di poter inserire un valore nullo nel metodo, ma preferirei capire perché sta facendo quello che sta facendo. La cosa più strana è che accade dopo aver aperto il progetto e averlo creato per la prima volta in Visual Studio dopo il riavvio. Funziona ogni volta dopo. –
Sto correndo nello stesso problema ESATTAMENTE. Qualcuno ha ancora una soluzione? –