- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我使用 Nancy + TinyIoC 来运行一个小型网络服务。这行得通。现在我需要创建一个 Quartz 作业,它需要一些相同的依赖项,理想情况下我想使用 Nancy 的 TinyIoC 来注入(inject)这些,如 Quartz Tutorial 中所述。 .
我找到了一个使用 Windsor 的示例,其中他们直接访问 IoC 容器,但根据此处提出的类似问题,在南希看来,这是粗鲁且不必要的。
那么我的问题是,执行此操作的正确方法是什么?我的 JobFactory 的代码如下所示:
public class MyJobFactory : IJobFactory
{
public IJob NewJob(TriggerFiredBundle bundle, IScheduler scheduler)
{
return (IJob) TinyIoCContainer.Current.Resolve(bundle.JobDetail.JobType);
}
}
但是这不会返回具有正确注入(inject)实例的作业,而是返回具有依赖项新实例的作业。 (这应该是单例,这让我相信 TinyIoCContainer.Current 返回的 TinyIoCContainer 与 Nancy 使用的容器不同)。
更新
我正在通过 Nancy Bootstrapper 设置 IoC 容器:
public class MyBootStrapper : DefaultNancyBootstrapper
{
protected override void ConfigureApplicationContainer(TinyIoCContainer container)
{
var push = new PushService();
// object initialization and Event Registration snipped
container.Register(cp);
}
}
最佳答案
leads me to believe that the TinyIoCContainer returned by TinyIoCContainer.Current is not the same container as the one Nancy uses).
合二为一:-)。Current 是一个静态实例,我们应该从 tinyioc.cs 文件的 Nancy 版本中删除它——它与 Bootstrap 使用的实例不同。
如果您绝对必须使用服务位置,并且没有办法只使用构造函数注入(inject),您可以覆盖 Bootstrap 中的 GetApplicationContainer 方法并返回 .Current 实例,以便 Nancy 改用它.默认情况下我们不使用它,因为我们不推荐它
关于.net - 使用 Nancy + TinyIoC 通过 Quartz JobFactory 注入(inject)依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12858648/
好的,这是一个新手问题,我通过网络搜索找不到任何线索,这是我的问题: 从示例中通常使用 IScheduler.ScheduleJob(job, trigger) 安排的触发器和作业现在我使用 JobF
使用 Quartz 2.2.2 Spring 4.2.4.RELEASE 如何配置quartz?,仅使用全部注释 正常启动我的系统 问题由系统的 2 个 jobFactory 组成 @Configur
所以我使用 Nancy + TinyIoC 来运行一个小型网络服务。这行得通。现在我需要创建一个 Quartz 作业,它需要一些相同的依赖项,理想情况下我想使用 Nancy 的 TinyIoC 来注入
所以我使用 Nancy + TinyIoC 来运行一个小型网络服务。这行得通。现在我需要创建一个 Quartz 作业,它需要一些相同的依赖项,理想情况下我想使用 Nancy 的 TinyIoC 来注入
我是一名优秀的程序员,十分优秀!