using Microsoft.Extensions.DependencyInjection; using System; using Quartz; using System.Linq; namespace SA.Quartz { /// /// Extensions method /// public static class ServiceCollectionExtensions { /// /// 初始化任务 /// /// /// /// public static IServiceCollection AddQuartzJob(this IServiceCollection services) { var types = AppDomain.CurrentDomain.GetAssemblies() .SelectMany(a => a.GetTypes().Where(t => t.GetInterfaces().Contains(typeof(IJob)))) .ToArray(); foreach (var type in types) { foreach (QuartzJobAttribute quartzJob in type.GetCustomAttributes(typeof(QuartzJobAttribute), true)) { services.AddTransient(type); } } services.AddSingleton(); return services; } } }