Ninject.Web и пользовательские элементы управления - PullRequest
6 голосов
/ 19 мая 2011

Я использую библиотеку Ninject.Web с нашим приложением веб-форм. Это прекрасно работает, за исключением того, что теперь мне нужно добавить зависимость в пользовательский элемент управления. Каков наилучший способ сделать это? Ninject.Web не содержит базового класса, как для веб-служб, страниц и главных страниц.

1 Ответ

4 голосов
/ 19 мая 2011

Вы можете создать базовый класс для пользовательских элементов управления самостоятельно:

public class NinjectedUserControl : System.Web.UI.UserControl
{
    protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);
        RequestActivation();
    }

    /// <summary>
    /// Asks the kernel to inject this instance.
    /// </summary>
    protected virtual void RequestActivation()
    {
        KernelContainer.Inject(this);
    }
}

У меня есть исходный код Ninject.Web в моем решении, и я добавил этот класс в Ninject.Web (чтобы он мог обращаться к KernelContainer,который является внутренним).

...