| 123456789101112131415161718192021222324252627 |
- namespace Admin.NET.Core;
- /// <summary>
- /// 动态作业编译
- /// </summary>
- public class DynamicJobCompiler : ISingleton
- {
- /// <summary>
- /// 编译代码并返回其中实现 IJob 的类型
- /// </summary>
- /// <param name="script">动态编译的作业代码</param>
- /// <returns></returns>
- public Type BuildJob(string script)
- {
- //动态创建作业
- var builder = new AssemblyCSharpBuilder("Admin.NET.Core")
- {
- Domain = DomainManagement.Random()
- };
- builder.Add(script);
- var assembly = builder.GetAssembly();
- var jobType = assembly.GetTypes().FirstOrDefault(u => typeof(IJob).IsAssignableFrom(u));
- return jobType;
- }
- }
|