C#反射动态调用dll中的方法及使用QuartZ.net实现作业调度
using Quartz;
using Quartz.Impl;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading;
using System.Threading.Tasks; namespace QuartZ
{
class Program
{
static void Main(string[] args)
{ //加载程序集(dll文件地址),使用Assembly类
Assembly assembly = Assembly.LoadFile(@"D:\ConsoleSample\QuartZ\ClassLib\bin\Debug\ClassLib.dll"); //获取类型,参数(名称空间+类)
Type type = assembly.GetType("ClassLib.Sample"); //创建该对象的实例,object类型,参数(名称空间+类)
object instance = assembly.CreateInstance("ClassLib.Sample"); //设置Show_Str方法中的参数类型,Type[]类型;如有多个参数可以追加多个
Type[] params_type = new Type[];
params_type[] = Type.GetType("System.String");
//设置Show_Str方法中的参数值;如有多个参数可以追加多个
Object[] params_obj = new Object[];
params_obj[] = "你好"; //执行Show_Str方法
object value = type.GetMethod("Show_Str", params_type).Invoke(instance, params_obj);
Console.WriteLine(value); //Nuget下载QuartZ
Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
//首先创建一个作业调度池
ISchedulerFactory schedf = new StdSchedulerFactory();
IScheduler sched = schedf.GetScheduler();
//创建出来一个具体的作业
IJobDetail job = JobBuilder.Create<JobDemo>().Build();
//NextGivenSecondDate:如果第一个参数为null 第二个参数则表明当前时间往后推迟2秒的时间点。
DateTimeOffset startTime = DateBuilder.NextGivenSecondDate(DateTime.Now.AddSeconds(), );
DateTimeOffset endTime = DateBuilder.NextGivenSecondDate(DateTime.Now.AddHours(), );
//创建并配置一个触发器
//每三秒执行一次,一共执行100次,开始执行时间设定在当前时间,
//结束时间我设定在2小时后;超过两小时不管有没有执行100次,都不执行了。 ISimpleTrigger trigger = (ISimpleTrigger)TriggerBuilder.Create().StartAt(startTime).EndAt(endTime)
.WithSimpleSchedule(x => x.WithIntervalInSeconds().WithRepeatCount())
.Build();
//加入作业调度池中
sched.ScheduleJob(job, trigger);
//开始运行
sched.Start();
Console.ReadKey();
}
} public class JobDemo : IJob
{
/// <summary>
/// 这里是作业调度每次定时执行方法
/// </summary>
/// <param name="context"></param>
public void Execute(IJobExecutionContext context)
{
Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace ClassLib
{
class Sample
{
public string Show_Str(string str)
{
if (string.IsNullOrEmpty(str))
{
return "无数据";
}
else
{
return "你传入的参数是:" + str;
}
}
}
}
C#反射动态调用dll中的方法及使用QuartZ.net实现作业调度的更多相关文章
- C#反射动态调用dll中的方法,并返回结果(转)
反射的作用是动态的加载某个dll(程序集),并执行该程序集中的某个方法,并返回结果:当然也可以给该方法传递参数 namespace assembly_name { public class assem ...
- C#反射动态调用dll中的方法
//加载程序集(dll文件地址),使用Assembly类 Assembly assembly = Assembly.LoadFile(AppDomain.CurrentDomain.BaseDirec ...
- 纯静态界面中(html)中通过js调用dll中的方法从数据库中读取数据
最近接到一个离职员工的任务,一个搭好框架的ERP系统,看了两天,说一下看到的东西,整个项目目录中我没发现一个.aspx后缀的文件,全是静态HTML文件,之后发现他用的jquery简直看的头疼,不过大概 ...
- C#利用反射动态调用DLL并返回结果,和获取程序集的信息
反射的基本概念: .Net Framework 中提供了反射机制,可以再加载程序运行时,动态获取和加载程序集,并且可以获取到程序集的信息 创建Assembly和Entity两个程序集,在Assembl ...
- 利用C#的反射机制动态调用DLL类库
最近由于业务要求,需要动态调用DLL类库,所以研究了一下,感觉还好也不太难,今天就把自己理解的写了一个小例子(已经通过VS2005跑通),供大家一起研究和探讨,有理解不当的地方还请高手们多多指正,谢谢 ...
- 学习反射例子,调用DLL窗体及方法
创建类库,并添加新窗体,加入以下方法 public static string setText(string str) { return str; } 编译后把生成的DLL文件放入新项目的bin目录, ...
- C#程序实现动态调用DLL的研究(转)
摘 要:在<csdn开发高手>2004年第03期中的<化功大法——将DLL嵌入EXE>一文,介绍了如何把一个动态链接库作为一个资源嵌入到可执行文件,在可执行文件运行时,自动从资 ...
- C#程序实现动态调用DLL的研究[转]
摘 要: 在< csdn 开发高手> 2004 年第 03 期中的<化功大法——将 DLL 嵌入 EXE >一文,介绍了如何把一个动态链接库作为一个资源嵌入到可执行文件,在 ...
- C#程序实现动态调用DLL的研究
摘 要:在<csdn开发高手>2004年第03期中的<化功大法——将DLL嵌入EXE>一文,介绍了如何把一个动态链接库作为一个资源嵌入到可执行文件,在可执行文件运行时,自动从资 ...
随机推荐
- 【bzoj2060】[Usaco2010 Nov]Visiting Cows拜访奶牛 树形dp
题目描述 经过了几周的辛苦工作,贝茜终于迎来了一个假期.作为奶牛群中最会社交的牛,她希望去拜访N(1<=N<=50000)个朋友.这些朋友被标号为1..N.这些奶牛有一个不同寻常的交通系统 ...
- 直通BAT面试算法精讲课 --动态规划
1.有数组penny,penny中所有的值都为正数且不重复.每个值代表一种面值的货币,每种面值的货币可以使用任意张,再给定一个整数aim(小于等于1000)代表要找的钱数,求换钱有多少种方法. 给定数 ...
- printf函数用法小记
By francis_hao Aug 26,2017 C语言中printf函数是一个比较常用的函数,但是常用并不代表完全了解,本文翻译了printf的man手册,介绍了其全部功能(不包括ma ...
- ACE主动对象模式(1)
转载于:http://www.cnblogs.com/TianFang/archive/2006/12/11/589168.html 主动对象模式用于降低方法执行和方法调用之间的耦合.该模式描述了另外 ...
- 常州模拟赛d7t3 水管
分析:第一问还是很好做的,关键是怎么做第二问.我们可以每次删掉最小生成树上的一条边,然后再求一次最小生成树,看边权和大小和原来的是不是一样的,不过这个做法效率很低. 考虑Kruskal算法的原理,每次 ...
- ubuntu10.04 安装gcc4.1.2
After a bunch of searching to get gcc-4.1 & g++-4.1 in Ubuntu 10.10 (maverick), I found easy wor ...
- DOM用TagName操作标签
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <t ...
- 简单的web小程序
首先我们先编写一个jsp表面的程序, <%@ page language="java" contentType="text/html; charset=UTF-8& ...
- table第一行合并,其余行宽度失效问题
<col>标签 http://www.w3school.com.cn/tags/tag_col.asp 由于表格中有一行合并过,所以其它没有合并的行的列宽就会平均化,对列宽的设置也会失效. ...
- centos中mysql的安装
一:前沿 过完年了,花了不少钱啊!本来还打算买电脑的了,结果这个事情还是的延期啊!苍天啊!刚刚也看了下,一台苹果也大概是1w左右!买吧!boy!别犹豫了吧!好吧现在来说说我自己的工作吧!现在过完年到公 ...