2010-06-29 27 views
7

Quiero usar Ninject en un proyecto que combina formularios web ASP.Net y ASP.Net MVC. Estoy usando Ninject 2, pero cuando uso NinjectHttpApplication desde Ninject.Web.Mvc se queja cuando uso algo como una PageBase que no crea el kernel.Ninject con formularios web ASP.Net y MVC

Tengo lo siguiente en Global.asax y no estoy seguro de qué agregar.

public class MvcApplication : Ninject.Web.Mvc.NinjectHttpApplication 
{ 
    protected override void OnApplicationStarted() 
    { 
     AreaRegistration.RegisterAllAreas(); 
     RegisterRoutes(RouteTable.Routes); 
     RegisterAllControllersIn(Assembly.GetExecutingAssembly()); 
    } 

    protected override Ninject.IKernel CreateKernel() 
    { 
     return new StandardKernel(new ServiceModule()); 
    } 
} 

¿Alguien tiene esto funcionando en algún lugar que pueda compartir algunas ideas o códigos sobre esto?

Respuesta

2

Como dijo Ruben, he puesto un mensaje en la lista de correo Ninject:

http://groups.google.com/group/ninject/browse_thread/thread/317fc48387399aa6

La respuesta en una palabra es, por desgracia ISN Realmente es posible. Sin embargo, con una clase PageBase personalizada que puede hacer la inyección de propiedades y métodos posibles (de la respuesta de Nate kohari en la Lista de Correo Ninject):

public abstract class PageBase : Page 
{ 
    public IKernel Kernel { get; private set; } 
    public PageBase() { Kernel = ...; } 
    public void Page_Init() { Kernel.Inject(this); } 
} 
1

1) Tener una mirada en la fuente, tanto para el MVC y no MVC Extensiones ninject - el código es muy corto y aseado

2) Ir a la lista de correo ninject y hacer esta pregunta, junto con lo has aprendido de la fuente. Habrá una respuesta o un parche para aclarar la rápida

+0

Gracias por su respuesta. He doen 1, e intenté combinar las dos aplicaciones Http en una. Pero esto no "se siente bien". He puesto un mensaje en la lista de correo de Ninject, le avisaré cuando reciba una respuesta útil. –

Cuestiones relacionadas