首先就是打开官网l2999019/GZY.Quartz.MUI: 基于Quartz的轻量级,注入化的UI组件 (github.com)里的方法,
然后关于dll注入,首先后台必须写好方法实现接口IJobService
我把原代码里的ijobservice修改了下,
public interface IJobService: IApplicationService
{
Task<string> ExecuteService(string parameter);
}
关于继承IApplicationService这个是abp的可以不继承。
比如
public class TestWorkderApplication :MyAppAppService,IJobService
{
private readonly IRSXT_rsxt_zzgl_xzjg_SJYYAppService _sJYYAppService;
public TestWorkderApplication(
IRSXT_rsxt_zzgl_xzjg_SJYYAppService sJYYAppService
)
{
_sJYYAppService = sJYYAppService;
}
public async Task<string> ExecuteService(string parameter)
{
var list = await _sJYYAppService.GetAsync("01");
return "操作成功";
}
}
MyAppAppService也可以去除。
然后再对ClassLibraryJob类进行修改下
var services = _serviceProvider.GetServices<IJobService>();
var service = services.Where(a => a.GetType().GetRuntimeFields().ToList()[1].FieldType.FullName == taskOptions.DllClassName).FirstOrDefault();
可能.net5或者abp里面的获得运行时的非公有类里找到对应的类名称进行比较