DynamicJobCompiler.cs 789 B

1234567891011121314151617181920212223
  1. // 此源代码遵循位于源代码树根目录中的 LICENSE 文件的许可证。
  2. //
  3. // 必须在法律法规允许的范围内正确使用,严禁将其用于非法、欺诈、恶意或侵犯他人合法权益的目的。
  4. namespace Admin.NET.Core;
  5. /// <summary>
  6. /// 动态作业编译
  7. /// </summary>
  8. public class DynamicJobCompiler : ISingleton
  9. {
  10. /// <summary>
  11. /// 编译代码并返回其中实现 IJob 的类型
  12. /// </summary>
  13. /// <param name="script">动态编译的作业代码</param>
  14. /// <returns></returns>
  15. public Type BuildJob(string script)
  16. {
  17. var jobAssembly = Schedular.CompileCSharpClassCode(script);
  18. var jobType = jobAssembly.GetTypes().FirstOrDefault(u => typeof(IJob).IsAssignableFrom(u));
  19. return jobType;
  20. }
  21. }