2011-05-19 15 views
5

Estoy usando la biblioteca Ninject.Web con nuestra aplicación de formularios web. Funciona muy bien, excepto que ahora necesito inyectar una dependencia en un control de usuario. Cuál es la mejor manera de lograr esto? Ninject.Web no contiene una clase base como lo hace para servicios web, páginas y páginas maestras.Ninject.Web y controles de usuario

Respuesta

5

Se puede hacer una clase base para que el usuario controla a sí mismo:

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); 
    } 
} 

tengo el código fuente de Ninject.Web en mi solución y he añadido a esta clase Ninject.Web (por lo que puede acceder KernelContainer, que es interno).

Cuestiones relacionadas