Я понял это с помощью последней версии 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;</p>
<code> static NinjectAopConfiguration()
{
_container = new NinjectAspectContainer();
}
public static void NinjectAopConfigure()
{
SnapConfiguration.For(_container).Configure(c =>
{
c.IncludeNamespace("MyNamespace.Model.*");
c.Bind<ExceptionLoggingInterceptor>().To<ExceptionLoggingAttribute>();
});
}
}
</code>
Мне также нужно было выполнить перенаправление привязки сборки для Ninject следующим образом, потому что естьконфликт версий сборки где-то для Ninject:
Надеюсь, это кому-нибудь поможет.
Приглашаю всех посмотреть и посмотреть, могут ли они улучшить это, пожалуйста.