/// <summary> /// /// </summary> /// <param name="app"></param> /// <returns></returns> public static IApplicationBuilder UseProcessEngine(this IApplicationBuilder app, IHostApplicationLifetime lifetime) { app.ApplicationServices.EnsureProcessEngineInit(); app.ApplicationServices.GetService <IOptionsMonitor <ProcessEngineOption> >() .OnChange((opts, prop) => { if (ProcessEngineOption.HasChanged()) { ProcessEngineFactory.Instance.Destroy(); app.ApplicationServices.EnsureProcessEngineInit(); } }); ApplicationStopping(app, lifetime); return(app); }
/// <summary> /// /// </summary> /// <param name="app"></param> /// <returns></returns> public static IApplicationBuilder UseProcessEngine(this IApplicationBuilder app, IApplicationLifetime lifetime) { app.ApplicationServices.EnsureProcessEngineInit(); app.ApplicationServices.GetService <IOptionsMonitor <ProcessEngineOption> >() .OnChange((opts, prop) => { if (ProcessEngineOption.HasChanged()) { ProcessEngineFactory.Instance.Destroy(); app.ApplicationServices.EnsureProcessEngineInit(); } }); lifetime.ApplicationStopping.Register((context) => { IApplicationBuilder builder = context as IApplicationBuilder; ProcessEngineFactory engineFact = builder.ApplicationServices.GetService <ProcessEngineFactory>(); engineFact.Destroy(); }, app, true); return(app); }