将 Hangfire 与 Ninject 配置 InRequestScope 集成时出现问题
Problems integrating Hangfire with Ninject configuration InRequestScope
我正在将 Hangfire 集成到应用程序 (MVC5 4.6) 中,以便安排通常由管理员用户每天晚上触发的每日同步任务。
问题是,我似乎无法让 Hangfire 与我当前的 Ninject 设置配合使用。它不仅仅是 运行 一个函数本身,我需要安装 Hangfire.Ninject 包并在 Startup.cs.
中注册内核
问题是,我有包含依赖项 B 的依赖项 A,但依赖项 B 也包含依赖项 A(循环)。
因为这些是在 Ninject 内核设置中的 RequestScope 中声明的,所以这没有引起任何问题,但是这个特定的项目在整个应用程序中使用得太多了,尝试起来太痛苦了移除循环依赖,但由于某些原因 Hangfire 不接受它。
是否有任何替代方法可以消除周期性依赖?
我仍然没有完全避免这个问题,但是出于 Hangfire 的目的,我决定注册一个不同的 Ninject 内核,并且可以精确地定制我需要的东西。
大多数依赖项现在使用 .InBackgroundJobScope() 而不是 .InRequestScope() (来自 Hangfire Ninject nuget 包),但奇怪的是其他一些(幸运的是我不需要)仍然给我周期性依赖问题。
我正在将 Hangfire 集成到应用程序 (MVC5 4.6) 中,以便安排通常由管理员用户每天晚上触发的每日同步任务。
问题是,我似乎无法让 Hangfire 与我当前的 Ninject 设置配合使用。它不仅仅是 运行 一个函数本身,我需要安装 Hangfire.Ninject 包并在 Startup.cs.
中注册内核问题是,我有包含依赖项 B 的依赖项 A,但依赖项 B 也包含依赖项 A(循环)。
因为这些是在 Ninject 内核设置中的 RequestScope 中声明的,所以这没有引起任何问题,但是这个特定的项目在整个应用程序中使用得太多了,尝试起来太痛苦了移除循环依赖,但由于某些原因 Hangfire 不接受它。
是否有任何替代方法可以消除周期性依赖?
我仍然没有完全避免这个问题,但是出于 Hangfire 的目的,我决定注册一个不同的 Ninject 内核,并且可以精确地定制我需要的东西。
大多数依赖项现在使用 .InBackgroundJobScope() 而不是 .InRequestScope() (来自 Hangfire Ninject nuget 包),但奇怪的是其他一些(幸运的是我不需要)仍然给我周期性依赖问题。