反射方法调用实例
之前,开发过程中对于这块并不常用。记得,只是在简单工厂模式那用到。因为,项目需要支持SqlServer、MySQL两种数据库,所以在数据库调用那简单使用一下。当然,目前自从有了EF后,不怎么使用了。以下,简单测试调用。
创建需要调用方法的类
class SampleClass
{
public void Cleaning()
{
Console.WriteLine("打扫");
}
public void CleanClosed(object param)
{
Console.WriteLine(param + "清理衣柜");
}
public void Quarrel()
{
Console.WriteLine("吵架");
}
public void Shopping()
{
Console.WriteLine("买东西");
}
}
创建枚举,当然可以使用具体方法名字
enum Week
{
Monday,
Teusday,
Wendesday,
Thursday,
Friday
}
根据枚举值,返回执行方法名称
public string ActionInTable(Week week) { string[] methods = { "Cleaning", "CleanClosed", "Quarrel", "Shopping" }; return methods[(int)week]; }
测试反射执行方法
public void Test() { SampleClass sampleCls = new SampleClass(); var addMethods = typeof(SampleClass).GetMethod(ActionInTable(Week.Teusday)); if (addMethods != null) { addMethods.Invoke(sampleCls, new object[] { "wangjx" }); } }
最后结果:"wangjx"清理衣柜
浙公网安备 33010602011771号