Gibt es eine Möglichkeit, Abhängigkeiten zu einer _ViewStart-Klasse zu injizieren/aufbauen, ohne meinen Service Locator direkt aufzurufen?asp.net mvc _ViewStart DI Hooks
Dank Ben
Gibt es eine Möglichkeit, Abhängigkeiten zu einer _ViewStart-Klasse zu injizieren/aufbauen, ohne meinen Service Locator direkt aufzurufen?asp.net mvc _ViewStart DI Hooks
Dank Ben
Ich verstehe nicht, wie Sie Ihre Einstellungen injizieren kann, wenn die _ViewStart Klasse (System.Web.Mvc.ViewStartPage) sie keine Eigenschaft haben zu halten.
Sie versuchen Angenommen, Ihre Einstellungen in _ViewStart zu vermeiden holen, ist eine mögliche Lösung wäre, eine benutzerdefinierte ViewStartPage Klasse zu erstellen, die eine Eigenschaft für Ihre Einstellungen hat, und rufen Sie die Service-Locator von innen dort:
/* CustomViewStart.cs */
public class CustomViewStart : System.Web.Mvc.ViewStartPage
{
public ISettings Settings { get; set; }
public CustomViewStart()
{
// Call service locator here
this.Settings = blah
}
}
um dies zu nutzen, müssen Sie die Basisklasse in Ihrem _ViewStart setzen:
@* _ViewStart.cshtml *@
@inherits MyTestApp.CustomViewStart
Es scheint nicht zu sein (oder auf jeden Fall kann ich nicht finden) eine Möglichkeit, die Basisklasse für diese Einstellung vornehmen, in Web.config wie du kannst mit basePageType :(
Versuchte das und bekam einen seltsamen Fehler, den es von WebViewPage oder von ViewStartPage ableiten muss, was es tut. –
Was genau versuchen Sie zu tun? – marcind
Ruft eine Instanz eines Einstellungsobjekts in _viewstart auf, um die Layoutseite festzulegen. –
Wenn Sie nur die Layoutseite festlegen müssen, können Sie dies in Ihrem Controller mit einer der View() - Überladungen tun: 'ViewResult View (string viewName, string masterName) 'und' ViewResult View (string viewName, string masterName, Objektmodell) '. –