using JNPF.DependencyInjection; using JNPF.Schedule; namespace JNPF.Common.Core; /// /// 动态作业编译. /// public class DynamicJobCompiler : ISingleton { /// /// 编译代码并返回其中实现 IJob 的类型. /// /// 动态编译的作业代码 /// public Type BuildJob(string script) { // 初始化 NatashaInitializer.Preheating(); // 动态创建作业 var builder = new AssemblyCSharpBuilder("JNPF.Common.Core") { Domain = DomainManagement.Random() }; builder.Add(script); return builder.GetAssembly().GetTypes().FirstOrDefault(u => typeof(IJob).IsAssignableFrom(u)); } }