2012-04-12 6 views
0

Ich versuche, diesen Code von DI Autofac zu Ninject 3.0.0.15 umzuschreiben.Verwenden von Ninject 3.0 für einen bestimmten Code

Ich habe Problem mit Methoden: AsImplementedInterfaces(...) und AsClosedTypesOf(...)

builder.RegisterAssemblyTypes(typeof(CategoryRepository).Assembly) 
    .Where(t => t.Name.EndsWith("Repository")).AsImplementedInterfaces() 
    .InstancePerHttpRequest(); 

Assembly services = Assembly.Load("EFMVC.Domain"); 

builder.RegisterAssemblyTypes(services) 
    .AsClosedTypesOf(typeof(ICommandHandler<>)).InstancePerHttpRequest(); 

builder.RegisterAssemblyTypes(services); 

Der Code ist Teil sehr schöner Demo Web-App für den Nachweis der ASP.NET MVC 4 und EF 4.3-Code Zuerst Windows Azure und Architekturbüros: EFMVC

Vielen Dank für Ihre Antworten!

+2

Warum würden Sie von Autofac zu Ninject ändern möchten? – Steven

Antwort

3

Verwenden Ninject.Extensions.Conventions V3.0.0

Ich denke, das ist das, was Sie suchen:

kernel.Bind(x => x 
     .FromAssemblyContaining<CategoryRepository>() 
     .SelectAllClasses().EndingWith("Repository") 
     .BindAllInterfaces() 
     .Configure(b => b.InRequestScope()); 

kernel.Bind(x => x 
     .From("EFMVC.Domain") 
     .SelectAllClasses().InheritedFromAny(typeof(ICommandHandler<>)) 
     .BindAllInterfaces() 
     .Configure(b => b.InRequestScope());