Я понял это с последней версией Ninject через NuGet, которая теперь добавляет вызов класса NinjectMVC3 в новую папку AppStart в приложении MVC3.
Код, который я использовал, выглядит следующим образом: В автоматически созданном методе NinjectMVC3.cs CreateKernel():
private static IKernel CreateKernel()
{
// Wire it up with AOP
NinjectAopConfiguration.NinjectAopConfigure();
//var kernel = new StandardKernel(); // Removed
RegisterServices(NinjectAopConfiguration._container.Kernel);
return NinjectAopConfiguration._container.Kernel;
}
Я также подключил Ninject для различных целей внедрения в методе RegisterServices().
Затем я взял образец кода, сгенерированный NuGet при добавлении SNAP.Ninject в приложение MVC 3, переименовал его в NinjectAOP.cs и сделал так:
public static class NinjectAopConfiguration
{
public readonly static NinjectAspectContainer _container;
static NinjectAopConfiguration()
{
_container = new NinjectAspectContainer();
}
public static void NinjectAopConfigure()
{
SnapConfiguration.For(_container).Configure(c =>
{
c.IncludeNamespace("MyNamespace.Model.*");
c.Bind<ExceptionLoggingInterceptor>().To<ExceptionLoggingAttribute>();
});
}
}
Мне также нужно было сделать перенаправление привязки сборки для Ninject следующим образом, потому что где-то для Ninject существует конфликт версии сборки:
Я надеюсь, что это помогает кому-то.
Я приглашаю всех взглянуть и посмотреть, могут ли они улучшить это, пожалуйста.
person
Redeemed1
schedule
02.03.2011