DynamicJobCompiler.cs 563 B

123456789101112131415161718192021
  1. namespace Admin.NET.Core;
  2. /// <summary>
  3. /// 动态作业编译
  4. /// </summary>
  5. public class DynamicJobCompiler : ISingleton
  6. {
  7. /// <summary>
  8. /// 编译代码并返回其中实现 IJob 的类型
  9. /// </summary>
  10. /// <param name="script">动态编译的作业代码</param>
  11. /// <returns></returns>
  12. public Type BuildJob(string script)
  13. {
  14. var jobAssembly = Schedular.CompileCSharpClassCode(script);
  15. var jobType = jobAssembly.GetTypes().FirstOrDefault(u => typeof(IJob).IsAssignableFrom(u));
  16. return jobType;
  17. }
  18. }