C# Quartz.Net:如何通过上下文发送类的实例

C# Quartz.Net:如何通过上下文发送类的实例,c#,quartz.net,C#,Quartz.net,我希望将记录器对象(NLog)传递到我的作业。 我有一节课 public partial class SomeClass { private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); public void SomeMethod() { try { _scheduler = StdSchedulerFactory.GetDefaul

我希望将记录器对象(NLog)传递到我的作业。 我有一节课

public partial class SomeClass
{
    private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
    public void SomeMethod() {
        try
        {
            _scheduler = StdSchedulerFactory.GetDefaultScheduler();
            IJobDetail job = JobBuilder.Create<Job>()
                .WithIdentity("job1", "group1")
                .Build();

            ITrigger trigger = TriggerBuilder.Create()
                .WithIdentity("trigger1", "group1")
                .StartNow()
                .WithSimpleSchedule(x => x
                    .WithIntervalInSeconds(5)
                    .RepeatForever())
                .Build();

            _scheduler.ScheduleJob(job, trigger);
            _scheduler.Start();
        }
        catch (SchedulerException es)
        {
            Logger.Trace(es);
            Logger.Fatal(es);
        }
    }
}
public分部类SomeClass
{
私有静态只读记录器Logger=LogManager.GetCurrentClassLogger();
公共方法(){
尝试
{
_scheduler=StdSchedulerFactory.GetDefaultScheduler();
IJobDetail job=JobBuilder.Create()
.WithIdentity(“工作1”、“组1”)
.Build();
ITrigger trigger=TriggerBuilder.Create()
.WithIdentity(“触发器1”、“组1”)
.StartNow()
.使用SimpleSchedule(x=>x
.间隔秒(5)
.RepeatForever())
.Build();
_ScheduleJob(作业,触发器);
_scheduler.Start();
}
捕获(调度)
{
记录器跟踪(es);
致命的(es);;
}
}
}
和工作:

[DisallowConcurrentExecution]
public class Job : IJob
{
    private static int i = 0;
    /// <inheritdoc />
    public Job()
    {
    }

    /// <inheritdoc />
    public void Execute(IJobExecutionContext context)
    {
        var logger = (Logger)context.Get("logger");//How ????
        logger.Debug("etc");
    }
}
[不允许继续执行]
公开课工作:IJob
{
私有静态int i=0;
/// 
公职()
{
}
/// 
public void Execute(IJobExecutionContext上下文)
{
var logger=(logger)context.Get(“logger”);//如何????
logger.Debug(“etc”);
}
}
我如何通过日志记录程序进入我的职业课程? 或者换句话说:如何将记录器置于上下文中? 我找不到关于它的任何信息,即使是在Quartz.Net的官方网站上。

我找到了一个解决方案:

类内:

IJobDetail job = JobBuilder.Create<Job>()
            .WithIdentity("job1", "group1")
            .Build();
job.JobDataMap["logger"] = Logger;
我找到了一个解决方案:

类内:

IJobDetail job = JobBuilder.Create<Job>()
            .WithIdentity("job1", "group1")
            .Build();
job.JobDataMap["logger"] = Logger;
可能的重复可能的重复