asp.net mvc _ViewStart DI Крючки - PullRequest
       1

asp.net mvc _ViewStart DI Крючки

0 голосов
/ 12 января 2011

Можно ли как-нибудь внедрить / создать зависимости в классе _ViewStart, не вызывая мой локатор службы напрямую?

Спасибо, Бен

1 Ответ

1 голос
/ 03 мая 2011

Я не понимаю, как вы можете ввести свои настройки, когда класс _ViewStart (System.Web.Mvc.ViewStartPage) не имеет свойства для их хранения.

Предполагая, что вы пытаетесь избежать выборки своих настроек в _ViewStart, возможное решение будет состоять в том, чтобы создать собственный класс ViewStartPage, который имеет свойство для ваших настроек, и вызвать из него локатор служб:

/* CustomViewStart.cs */
public class CustomViewStart : System.Web.Mvc.ViewStartPage
{
    public ISettings Settings { get; set; }

    public CustomViewStart()
    {
        // Call service locator here
        this.Settings = blah
    }
}

Чтобы использовать это, вам нужно установить базовый класс в _ViewStart:

@* _ViewStart.cshtml *@
@inherits MyTestApp.CustomViewStart

Похоже, нет (или, конечно, я не могу найти) способа установить базовый класс для этого в Web.config, как вы можете с помощью basePageType: (

...