C#开发学习笔记:动态调用不同程序集中的方法
2017-09-13 15:50
603 查看
/// <summary> /// 执行数据库操作方法 /// </summary> /// <param name="ServiceName">要执行的Service名称</param> /// <param name="ds">数据源</param> public static DataSet ExecuteService(String ServiceName, DataSet ds) { DataSet ReturnInfo = new DataSet(); try { //string sql = "SELECT * FROM TSM09 T WHERE T.SERVICE_NAME=:SERVICE_NAME"; //RCDbCommand comm = new RCDbCommand(DBConnection.conn); //comm.CommandText = sql; //comm.Parameter("SERVICE_NAME", ServiceName); //DataSet ReturnInfo = new DataSet(); //comm.ExecuteDataSet(ReturnInfo); //if(ReturnInfo.Tables[0].Rows.Count>0) //{ //根据ServiceName查询出来的信息(ServiceName所在的程序集,程序集中的类)获取当前Service方法 MethodInfo ServiceVoid = Assembly.LoadFrom("SMSql.DLL").GetType("SMSql.FormSM01Sql").GetMethod(ServiceName); //} //定义一个存储参数值的数组,长度等于要调用的方法的参数个数 object[] ParametersList = new object[ServiceVoid.GetParameters().Length]; //根据参数个数按照顺序给ParametersList添加元素 for (int i = 0; i < ServiceVoid.GetParameters().Length; i++) ParametersList[i]=ds.Tables[0]; //使用Invoke方法立即调用当前的方法同时传参数接收返回结果(如果调用的方法有返回结果且类型已知则转类型) //类型未知则用object接收 ReturnInfo = ServiceVoid.Invoke(null, ParametersList) as DataSet; } catch (Exception ex) { Tools.RCMesInfo.Flag = -1; Tools.RCMesInfo.ReturnMsg = ex.ToString(); return ReturnInfo; } return ReturnInfo; //Tools.RCMesInfo.Flag = 0; }
相关文章推荐
- C# 如何利用反射来加载程序集,并调用程序集中有关类的方法【转】
- (原创)c#学习笔记10--定义类成员02--类成员的其他议题02--调用重写或隐藏的基类方法
- 【学习笔记】零基础C#窗口程序开发入门
- head first C#学习笔记:构建动态控件2-UserControl方法
- C#利用反射来加载程序集,并调用程序集中有关类的方法
- Struts2学习笔记之动态方法调用和参数获取
- 【c#学习笔记】在一个构造方法中调用另一个构造方法的写法
- 分布式应用系统服务器上下线动态感知程序开发学习笔记
- (原创)c#学习笔记02--编写c#程序01--开发环境
- C#动态方法调用 提高程序的扩展性
- struts2学习笔记--------动态方法调用和使用通配符定义action
- Web开发学习笔记之一:如何配置IIS使其能运行ISAPI动态链接库程序?
- 关于C#如何动态加载程序并调用其中某个类的方法
- C#开发学习笔记:动态绑定控件事件
- C# 如何利用反射来加载程序集,并调用程序集中有关类的方法
- 关于Struts2 namespace 的学习笔记(DMI动态方法调用)
- C#回顾学习笔记十四:C#中自定义方法与调用方法
- 【学习笔记】零基础C#窗口程序开发入门
- 黑马程序员---struts2学习笔记之三通配符与动态方法调用
- ruby学习笔记之【动态方法调用】