Ich erhalte diese Fehlermeldung:MVC-Controller will leer contructor aber dann Schnittstelle nicht verwendet und wirft Fehler
An exception of type 'System.NullReferenceException' occurred in PubStuff.Intern.Web.Internal.dll but was not handled in user code Additional information: Object reference not set to an instance of an object
public class InternController : BaseController
{
IInternService _internService;
public InternController() { }
public InternController(IInternService internService)
{
_internService = internService;
}
// GET: Intern
public ActionResult Index()
{
object responseObject = null;
responseObject = _internService.GetAllSkills();
return View();
}
}
- Es klagt Wenn ich leer Konstruktor nicht
- Einmal haben Es gibt einen leeren Konstruktor, dann wirft diese Zeile
responseObject = _internService.GetAllSkills();
den Fehler.
_internService ist null
Wie kann ich dieses Problem beheben?Was sind die Probleme?
Updates ich ein Problem mit am Ende mit StructureMap ob ich hinzufügen IInternUnitOfWork oder nicht.
ich hinzugefügt, um die IInternService
zu StructureMap und dann nicht
Fehler geworfen
protected override object DoGetInstance(Type serviceType, string key)
{
if (string.IsNullOrEmpty(key))
{
return serviceType.IsAbstract || serviceType.IsInterface
? this.Container.TryGetInstance(serviceType)
: this.Container.GetInstance(serviceType);
}
return this.Container.GetInstance(serviceType, key);
}
"StructureMap Exception Code: 202\nNo Default Instance defined for PluginFamily PublicHealth.Intern.DataAccess.Contracts.IInternUnitOfWork, PublicHealth.Intern.DataAccess.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"}
Welches DI-Framework verwenden Sie, um den Dienst zu injizieren? –
Ich nehme an, die Tatsache, dass ein Standardkonstruktor gewünscht wird, bedeutet, dass irgendwo Ihr Code (oder automatisch generierter/Bibliothekscode) auf einen Standardkonstruktor verweist. Da dieser Konstruktor _internService nicht initialisiert, macht es Sinn, dass Sie eine Nullreferenz erhalten, wenn Sie versuchen, sie aufzurufen. – nhouser9
@StephenMuecke - StructureMap - alte Version (2.6.1) Ich hasse es –