Вы можете создать базовый класс для пользовательских элементов управления самостоятельно:
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,который является внутренним).