7
votes

NIJOCT avec ASP.NET WebForms et MVC

Je veux utiliser Ninject dans un projet qui combine ASP.NET Webforms et ASP.NET MVC. J'utilise Ninject 2, mais quand j'utilise Ninjecthttpplication à partir de Ninject.Web.mvc, il se plaint lorsque j'utilise quelque chose comme une pageBase que le noyau n'est pas créé.

J'ai ce qui suit dans le global.asax et je ne suis pas sûr quoi d'ajouter. P>

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


0 commentaires

3 Réponses :


1
votes

1) Jetez un coup d'œil à la source pour les extensions Ninject MVC et non MVC - le code est très court et net

2) Accédez à la liste de diffusion Ninject et posez cette question, ainsi que ce que vous avez appris de la source. Il y aura une réponse ou un correctif éclaircissant rapide


1 commentaires

Merci pour votre réponse. J'ai fait 1 et j'ai essayé de combiner les deux httpApplications en un. Mais cela ne "ressent pas". J'ai mis un message sur la liste de diffusion Ninject, vous permettra de savoir quand j'obtiendrai une réponse utile.



2
votes

Comme Ruben a dit, j'ai mis un message sur la liste de diffusion Ninject:

http://groups.google.com/group/ninject/browse_thread/thread/317fc48387399AA6 P>

La réponse en bref est, malheureusement, n'est pas vraiment possible. Toutefois, avec une classe de pageBase personnalisée, vous pouvez faire une injection de propriété et de méthode possible (de la réponse de Nate Kohari dans la liste de diffusion NIZJECT): P>

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


0 commentaires

0
votes

Voici quelques très bonnes ressources sur la manière de tirer parti de DI dans WebForms que j'avais marqué il y a quelque temps:

http://aspnetreSources.com/articles/ioc_and_di_with_web_forms http://aspnetreSources.com/articles/real_world_ioc_and_di_with_webforms

J'espère que cela aide.


0 commentaires