是否有人使用SNAP AOP框架与MVC 3和Ninject一起工作。
使用NuGet将Snap添加到MVC 3项目时给出的示例并不特别适用于以前添加的NInject包。我试图让它在正常的NInject方法的基础上运行,但却无法让它实际拦截!
有人可以在代码中显示如何执行此操作吗?
答案 0 :(得分:4)
我通过NuGet使用最新版本的Ninject,现在在MVC3应用程序的新AppStart文件夹中添加了一个类调用NinjectMVC3。
我使用的代码如下: 在自动创建的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()方法中的各种注入目标。
接下来,当我将SNAP.Ninject添加到MVC 3应用程序时,我将NuGet生成的示例代码重命名为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的某处存在程序集版本冲突:
我希望这有助于某人。
我邀请任何人看看,看看他们是否可以改善这一点。