有没有人让 SNAP AOP 框架与 MVC 3 和 Ninject 一起工作。
使用 NuGet 将 Snap 添加到 MVC 3 项目时给出的示例不适用于以前添加的 NInject 包。我试图让它基于正常的 NInject 方法工作,但无法让它真正拦截!
任何人都可以在代码中展示如何做到这一点吗?
有没有人让 SNAP AOP 框架与 MVC 3 和 Ninject 一起工作。
使用 NuGet 将 Snap 添加到 MVC 3 项目时给出的示例不适用于以前添加的 NInject 包。我试图让它基于正常的 NInject 方法工作,但无法让它真正拦截!
任何人都可以在代码中展示如何做到这一点吗?
我通过 NuGet 使用最新版本的 Ninject 解决了这个问题,它现在在 MVC3 应用程序的新 AppStart 文件夹中添加了一个类调用 NinjectMVC3。
我使用的代码如下:在自动创建的 NinjectMVC3.cs CreateKernel() 方法中:-
私有静态 IKernel CreateKernel() { // 用 AOP 连接它 NinjectAopConfiguration.NinjectAopConfigure(); //var kernel = new StandardKernel(); // 移除 RegisterServices(NinjectAopConfiguration._container.Kernel); 返回 NinjectAopConfiguration._container.Kernel; }
我还在 RegisterServices() 方法中为各种注入目标连接了 Ninject。
接下来,我在将 SNAP.Ninject 添加到 MVC 3 应用程序时,将 NuGet 生成的示例代码重命名为 NinjectAOP.cs 并使其如下所示:
公共静态类 NinjectAopConfiguration
{
公共只读静态 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 在某处存在程序集版本冲突:
我希望这可以帮助别人。
我邀请任何人看看,看看他们是否可以改进这一点。